@jbrowse/plugin-linear-genome-view 1.5.9 → 1.6.0
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/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +35 -17
- package/dist/LinearBareDisplay/model.d.ts +28 -4
- package/dist/LinearBasicDisplay/model.d.ts +28 -4
- package/dist/LinearGenomeView/components/Header.d.ts +2 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +2 -1
- package/dist/LinearGenomeView/components/ScaleBar.d.ts +8 -8
- package/dist/LinearGenomeView/components/SearchBox.d.ts +8 -0
- package/dist/LinearGenomeView/index.d.ts +7 -4
- package/dist/index.d.ts +85 -14
- package/dist/plugin-linear-genome-view.cjs.development.js +738 -389
- 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 +749 -401
- package/dist/plugin-linear-genome-view.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +308 -88
- package/src/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.ts +10 -3
- package/src/LinearBasicDisplay/configSchema.ts +0 -6
- package/src/LinearGenomeView/components/Header.tsx +38 -120
- package/src/LinearGenomeView/components/ImportForm.tsx +1 -1
- package/src/LinearGenomeView/components/LinearGenomeView.test.js +6 -4
- package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +9 -5
- package/src/LinearGenomeView/components/SearchBox.tsx +111 -0
- package/src/LinearGenomeView/components/TrackLabel.tsx +10 -6
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +10 -11
- package/src/LinearGenomeView/index.tsx +25 -53
- package/src/index.ts +61 -2
|
@@ -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("@jbrowse/core/configuration"),o=require("@jbrowse/core/pluggableElementTypes/models"),a=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),i=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),l=e(require("@jbrowse/core/pluggableElementTypes/ViewType")),c=e(require("@jbrowse/core/Plugin")),s=require("@jbrowse/core/util"),u=e(require("@material-ui/icons/LineStyle")),d=e(require("@jbrowse/core/util/compositeMap")),f=require("@jbrowse/core/util/simpleFeature"),m=require("@jbrowse/core/util/tracks"),p=e(require("@material-ui/core/Button")),g=e(require("@material-ui/core/Typography")),h=e(require("@material-ui/icons/MenuOpen")),v=require("mobx"),y=require("mobx-state-tree"),b=require("@material-ui/core"),k=require("@jbrowse/core/ui"),w=require("mobx-react"),E=require("react-popper"),x=require("@material-ui/core/styles"),S=require("@jbrowse/core/util/blockTypes"),C=require("@jbrowse/core/util/types/mst"),P=require("@jbrowse/core/util/types"),T=e(require("@material-ui/icons/Refresh")),B=require("@jbrowse/core/configuration/configurationSchema"),R=e(require("@jbrowse/core/util/calculateDynamicBlocks")),N=e(require("@jbrowse/core/util/calculateStaticBlocks")),M=e(require("@jbrowse/core/util/Base1DViewModel")),L=e(require("clone")),D=require("file-saver"),O=require("@jbrowse/core/ui/Icons"),I=e(require("@material-ui/icons/SyncAlt")),F=e(require("@material-ui/icons/Visibility")),j=e(require("@material-ui/icons/Label")),z=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/AssemblySelector")),se=e(require("@jbrowse/core/ui/ErrorMessage")),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 Te(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 Be(e){return function(e){if(Array.isArray(e))return Ne(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 Ne(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)?Ne(e,t):void 0}}function Ne(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 Me(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}}}}var Le=r.ConfigurationSchema("BaseLinearDisplay",{maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:Number.MAX_VALUE}},{explicitIdentifier:"displayId"});function De(e,t){return e(t={exports:{}},t.exports),t.exports}var Oe=De((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=x.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=w.observer((function(e){var t=e.block,r=e.children,o=Ie();return n.createElement("div",{style:{width:t.widthPx},className:o.contentBlock},r)}));function je(e){var t=e.width,r=Ie();return n.createElement("div",{className:r.elidedBlock,style:{width:t}})}function ze(e){var t=e.boundary,r=e.width,o=e.style,a=void 0===o?{}:o,i=Ie();return n.createElement("div",{style:he(he({},a),{},{width:r}),className:t?i.boundaryPaddingBlock:i.interRegionPaddingBlock})}var qe=x.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=w.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 S.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 S.ElidedBlock)return n.createElement(je,{key:"".concat(t.id,"-").concat(e.key),width:e.widthPx});if(e instanceof S.InterRegionPaddingBlock)return n.createElement(ze,{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=s.getContainingView(t);return n.createElement("div",{"data-testid":"Blockset",className:r.linearBlocks,style:{left:o.offsetPx-a.offsetPx}},n.createElement(Ae,{model:t}))}He.propTypes={model:w.PropTypes.observableObject.isRequired};var We=w.observer(He),_e=b.makeStyles((function(e){return{display:{position:"relative",whiteSpace:"nowrap",textAlign:"left",width:"100%",minHeight:"100%"},tooltip:{pointerEvents:"none",backgroundColor:b.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(10),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=w.observer((function(e){var o=e.model,a=e.clientMouseCoord,i=_e(),l=o.featureUnderMouse,c=Te(t.useState(0),2),s=c[0],u=c[1],d=Te(t.useState(null),2),f=d[0],m=d[1],p=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]),g=E.usePopper(p,f),h=g.styles,v=g.attributes,y=l?r.getConf(o,"mouseover",{feature:l}):void 0;return l&&y?n.createElement(b.Portal,null,n.createElement("div",Object.assign({ref:m,className:i.tooltip,style:he(he({},h.popper),{},{zIndex:1e5})},v.popper),n.createElement(Ve,{ref:function(e){return u((null==e?void 0:e.getBoundingClientRect().width)||0)},message:y}))):null})),Xe=w.observer((function(e){var o=_e(),a=b.useTheme(),i=t.useRef(null),l=Te(t.useState(),2),c=l[0],s=l[1],u=Te(t.useState([0,0]),2),d=u[0],f=u[1],m=Te(t.useState([0,0]),2),p=m[0],g=m[1],h=Te(t.useState(),2),v=h[0],y=h[1],w=e.model,E=e.children,x=w.TooltipComponent,S=w.DisplayMessageComponent,C=w.contextMenuItems,P=w.height,T=w.setContextMenuFeature;return n.createElement("div",{ref:i,"data-testid":"display-".concat(r.getConf(w,"displayId")),className:o.display,onContextMenu:function(e){e.preventDefault(),v?y(void 0):i.current&&y([e.clientX,e.clientY])},onMouseMove:function(e){if(i.current){var t=i.current.getBoundingClientRect();f([e.clientX-t.left,e.clientY-t.top]),g([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:p,clientRect:c,mouseCoord:d}),n.createElement(k.Menu,{open:Boolean(v)&&Boolean(C().length),onMenuItemClick:function(e,t){t(),y(void 0)},onClose:function(){y(void 0),T(void 0)},TransitionProps:{onExit:function(){y(void 0),T(void 0)}},anchorReference:"anchorPosition",anchorPosition:v?{top:v[1],left:v[0]}:void 0,style:{zIndex:a.zIndex.tooltip},menuItems:C(),"data-testid":"base_linear_display_context_menu"}))})),Ue=x.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=w.observer((function(e){var r=e.model,o=Te(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=y.getParent(r,2).message||c;return n.createElement(n.Fragment,null,a?n.createElement("div",{className:l.loading},n.createElement(g,{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(g,{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(T,null)},"Reload"):null,n.createElement(g,{color:"error",variant:"body2",display:"inline"},"".concat(t)))}var Qe=w.observer((function(e){var t=e.model;return t.error?n.createElement(Je,null,n.createElement(Ke,{error:t.error,reload:t.reload,displayHeight:m.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=y.types.model("BlockState",{key:y.types.string,region:C.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=s.getContainingDisplay(e);s.makeAbortableReaction(e,et,tt,{name:"".concat(t.id,"/").concat(s.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,P.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,y.getParent(e,2).reload()},beforeDestroy:function(){t&&!t.signal.aborted&&t.abort();var n=s.getContainingDisplay(e),r=s.getSession(e).rpcManager,o=n.rendererType,a=et(y.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||s.getContainingDisplay(e),o=s.getSession(n),a=o.assemblyManager,i=o.rpcManager,l=n.adapterConfig,c=n.rendererType,u=n.error,d=m.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 p=n.renderProps();r.readConfObject(p.config);var g=m.getRpcSessionId(n);return{rendererType:c,rpcManager:i,renderProps:p,cannotBeRenderedReason:n.regionCannotBeRendered(e.region),displayError:u,renderArgs:{statusCallback:function(t){y.isAlive(e)&&e.setStatus(t)},assemblyName:e.region.assemblyName,regions:[e.region],adapterConfig:l,rendererType:c.name,sessionId:g,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(Oe.mark((function e(t,n,r){var o,a,i,l,c,s,u;return Oe.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,y.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"],ot=y.types.compose("BaseLinearDisplay",o.BaseDisplay,y.types.model({height:y.types.optional(y.types.refinement("displayHeight",y.types.number,(function(e){return e>=20})),100),blockState:y.types.map($e),userBpPerPxLimit:y.types.maybe(y.types.number)})).volatile((function(){return{message:"",featureIdUnderMouse:void 0,contextMenuFeature:void 0,scrollTop:0}})).views((function(e){return{get blockType(){return"staticBlocks"},get blockDefinitions(){var t=this.blockType,n=s.getContainingView(e);if(!n.initialized)throw new Error("view not initialized yet");return n[t]}}})).views((function(e){return{get maxViewBpPerPx(){return e.userBpPerPxLimit||r.getConf(e,"maxDisplayedBpPerPx")},get renderDelay(){return 50},get TooltipComponent(){return Ge},get selectedFeatureId(){if(y.isAlive(e)){var t=s.getSession(e).selection;if(f.isFeature(t))return t.id()}},get DisplayMessageComponent(){}}})).views((function(e){return{get features(){var t,n=[],r=Me(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 d(n)},get featureUnderMouse(){return e.featureIdUnderMouse?this.features.get(e.featureIdUnderMouse):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}}})).actions((function(e){return{afterAttach:function(){var t=this,n=v.autorun((function(){var n={};s.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)})))}));y.addDisposer(e,n)},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},setUserBpPerPxLimit:function(t){e.userBpPerPxLimit=t},setMessage:function(t){e.message=t},addBlock:function(t,n){e.blockState.set(t,$e.create({key:t,region:n.toRegion()}))},deleteBlock:function(t){e.blockState.delete(t)},selectFeature:function(t){var n=s.getSession(e);if(s.isSessionModelWithWidgets(n)){var r=n.addWidget("BaseFeatureWidget","baseFeature",{featureData:t.toJSON(),view:s.getContainingView(e)});n.showWidget(r)}s.isSelectionContainer(n)&&n.setSelection(t)},clearFeatureSelection:function(){s.getSession(e).clearSelection()},setFeatureIdUnderMouse:function(t){e.featureIdUnderMouse=t},reload:function(){Be(e.blockState.values()).map((function(e){return e.doReload()}))},setContextMenuFeature:function(t){e.contextMenuFeature=t}}})).views((function(e){return{regionCannotBeRenderedText:function(t){var n=s.getContainingView(e);return n&&n.bpPerPx>e.maxViewBpPerPx?"Zoom in to see features":""},regionCannotBeRendered:function(t){var r=s.getContainingView(e);if(r&&r.bpPerPx>e.maxViewBpPerPx)return n.createElement(n.Fragment,null,n.createElement(g,{component:"span",variant:"body2"},"Zoom in to see features or"," "),n.createElement(p,{"data-testid":"reload_button",onClick:function(){e.setUserBpPerPxLimit(r.bpPerPx),e.reload()},variant:"outlined"},"Force Load"),n.createElement(g,{component:"span",variant:"body2"},"(force load may be slow)"))},trackMenuItems:function(){return[]},contextMenuItems:function(){return e.contextMenuFeature?[{label:"Open feature details",icon:h,onClick:function(){e.contextMenuFeature&&e.selectFeature(e.contextMenuFeature)}}]:[]},renderProps:function(){return he(he({},m.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,displayModel:e,onFeatureClick:function(t,n){var r=n||e.featureIdUnderMouse;if(r){var o=e.features.get(r);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(Oe.mark((function r(){var o,a,i,l,c,u,d;return Oe.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=e.height,a=e.id,i=t.overrideHeight,l=s.getContainingView(e),c=l.offsetPx,u=l.roundedDynamicBlocks,d=l.width,r.next=6,Promise.all(u.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=u[t].offsetPx-c,l="clip-".concat("undefined"==typeof jest?a:"jest","-").concat(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 at(e){return r.ConfigurationSchema("LinearBareDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Le,explicitlyTyped:!0})}function it(e){return y.types.compose("LinearBareDisplay",ot,y.types.model({type:y.types.literal("LinearBareDisplay"),configuration:B.ConfigurationReference(e)})).views((function(e){var t=e.renderProps;return{renderProps:function(){return he(he(he({},t()),m.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,config:e.configuration.renderer})},get rendererTypeName(){return e.configuration.renderer.type}}}))}function lt(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 ct(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=lt(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 st=x.makeStyles((function(){return{majorTickLabel:{fontSize:"11px"},majorTick:{stroke:"#555"},minorTick:{stroke:"#999"}}}));function ut(e){var t=e.start,r=e.end,o=e.bpPerPx,a=e.reversed,i=e.major,l=e.minor,c=st(),s=ct(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))})))}ut.propTypes={start:W.number.isRequired,end:W.number.isRequired,bpPerPx:W.number.isRequired,reversed:W.bool,major:W.bool,minor:W.bool},ut.defaultProps={reversed:!1,major:!0,minor:!0};var dt=w.observer(ut),ft=b.makeStyles((function(e){var t=e.palette,n=t.tertiary,r=t.primary;return{rubberBand:{height:"100%",background:b.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}}})),mt=w.observer((function(e){var t,r=e.model,o=e.open,a=e.guideX,i=e.overview,l=ft(),c=r.cytobandOffset,u=s.getSession(r).assemblyManager,d=i.pxToBp(a-c),f=u.get(d.assemblyName),m=null==f||null===(t=f.cytobands)||void 0===t?void 0:t.find((function(e){return d.coord>e.get("start")&&d.coord<e.get("end")&&d.refName===f.getCanonicalRefName(e.get("refName"))}));return n.createElement(b.Tooltip,{open:o,placement:"top",title:[s.stringify(d),null==m?void 0:m.get("name")].join(" "),arrow:!0},n.createElement("div",{className:l.guide,style:{left:a}}))}));function pt(e){var r=e.model,o=e.overview,a=e.ControlComponent,i=void 0===a?n.createElement("div",null):a,l=r.cytobandOffset,c=Te(t.useState(),2),u=c[0],d=c[1],f=Te(t.useState(),2),m=f[0],p=f[1],g=Te(t.useState(),2),h=g[0],v=g[1],y=t.useRef(null),k=t.useRef(null),w=ft(),E=void 0!==u;function x(e){e.preventDefault(),e.stopPropagation(),y.current&&d(e.clientX-y.current.getBoundingClientRect().left)}function S(e){y.current&&v(e.clientX-y.current.getBoundingClientRect().left)}function C(){v(void 0)}if(t.useEffect((function(){function e(e){var t=y.current;if(t&&E){var n=e.clientX-t.getBoundingClientRect().left;p(n)}}function t(){if(y.current&&void 0!==u&&void 0!==m&&Math.abs(m-u)>3&&r.zoomToDisplayedRegions(o.pxToBp(u-l),o.pxToBp(m-l)),y.current&&void 0!==u&&void 0===m){var e=o.pxToBp(u-l);r.centerAt(Math.round(e.coord),e.refName,e.index)}d(void 0),p(void 0),void 0!==u&&v(void 0)}function n(e){"Escape"===e.key&&(d(void 0),p(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,m,u,r,o,l]),void 0===u)return n.createElement("div",{style:{position:"relative"}},void 0!==h?n.createElement(mt,{model:r,open:!E,overview:o,guideX:h}):null,n.createElement("div",{className:w.rubberBandControl,role:"presentation",ref:y,onMouseDown:x,onMouseOut:C,onMouseMove:S},i));var P,T,B=u||0,R=0;if(void 0!==u&&void 0!==m&&(B=m<u?m:u,R=m-u),u&&(P=o.pxToBp(u-l),T=o.pxToBp(u+R-l),m&&m<u)){var N=[T,P];P=N[0],T=N[1]}return n.createElement("div",{style:{position:"relative"}},k.current?n.createElement(n.Fragment,null,n.createElement(b.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(b.Typography,null,P?s.stringify(P):"")),n.createElement(b.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(b.Typography,null,T?s.stringify(T):""))):null,n.createElement("div",{ref:k,className:w.rubberBand,style:{left:B,width:Math.abs(R),height:zn}}),n.createElement("div",{"data-testid":"rubberBand_controls",className:w.rubberBandControl,role:"presentation",ref:y,onMouseDown:x,onMouseOut:C,onMouseMove:S},i))}pt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,overview:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},pt.defaultProps={ControlComponent:n.createElement("div",null)};var gt=w.observer(pt),ht=b.makeStyles((function(e){return{scaleBar:{height:zn},scaleBarBorder:{border:"1px solid"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:zn},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:zn,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{position:"absolute",height:zn,pointerEvents:"none",zIndex:100,border:"1px solid"},overview:{height:jn,position:"relative"},overviewSvg:{width:"100%",position:"absolute"}}})),vt=w.observer((function(e){var t=e.model,r=e.overview,o=e.useOffset,a=void 0===o||o,i=b.useTheme(),l=Number(a),c=t.interRegionPaddingWidth,s=t.offsetPx,u=t.dynamicBlocks,d=t.cytobandOffset,f=u.contentBlocks,m=u.totalWidthPxWithoutBorders,p=i.palette,g=p.tertiary,h=g?g.light:p.primary.light;if(!f.length)return null;var v=f[0],y=f[f.length-1],k=(r.bpToPx(he(he({},v),{},{coord:v.reversed?v.end:v.start}))||0)+d*l,w=(r.bpToPx(he(he({},y),{},{coord:y.reversed?y.start:y.end}))||0)+d*l,E=Math.max(0,-s);return n.createElement("polygon",{points:[[E,jn],[E+m+f.length*c/2,jn],[w,0],[k,0]].toString(),fill:b.alpha(h,.3),stroke:b.alpha(h,.8)})}));function yt(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 bt={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=w.observer((function(e){var t,r=e.overview,o=e.block,a=e.assembly,i=o.offsetPx,l=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]})),c=!0;return l?n.createElement("g",{transform:"translate(-".concat(i,")")},l.map((function(e,t){var r,o,a,i=Te(e,3),s=i[0],u=i[1],d=i[2],f="".concat(s,"-").concat(u,"-").concat(d);return"acen"===d&&c?(c=!1,n.createElement("polygon",{key:f,points:[[s,0],[u,zn/2],[s,zn]].toString(),fill:bt[d]})):"acen"!==d||c?0===t?n.createElement("path",{key:f,d:(r=Math.min(s,u),o=Math.abs(u-s),a=zn,"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:bt[d]}):t===l.length-1?n.createElement("path",{key:f,d:yt(Math.min(s,u),0,Math.abs(u-s)-2,zn,8),fill:bt[d]}):n.createElement("rect",{key:f,x:Math.min(s,u),y:0,width:Math.abs(u-s),height:zn,fill:bt[d]}):n.createElement("polygon",{key:f,points:[[s,zn/2],[u,0],[u,zn]].toString(),fill:bt[d]})}))):null})),wt=w.observer((function(e){for(var t=e.scale,r=e.model,o=e.block,a=e.overview,i=ht(),l=r.cytobandOffset,c=r.showCytobands,u=o.start,d=o.end,f=o.reversed,m=o.refName,p=o.assemblyName,g=lt(t,120,15).majorPitch,h=s.getSession(r).assemblyManager.get(p),v=null==h?void 0:h.getRefNameColor(m),y=[],k=0;k<Math.floor((d-u)/g);k++){var w=(k+1)*g;y.push(f?d-w:u+w)}return n.createElement("div",null,n.createElement(b.Typography,{style:{left:o.offsetPx+3,color:c?"black":v},className:i.scaleBarRefName},m),n.createElement("div",{className:_(i.scaleBarContig,c?void 0:f?i.scaleBarContigReverse:i.scaleBarContigForward,c?void 0:i.scaleBarBorder),style:{left:o.offsetPx+l,width:o.widthPx,borderColor:v}},c?null:y.map((function(e,r){return n.createElement(b.Typography,{key:"".concat(JSON.stringify(o),"-").concat(e,"-").concat(r),className:i.scaleBarLabel,variant:"body2",style:{left:(r+1)*g/t,pointerEvents:"none",color:v}},e.toLocaleString("en-US"))})),c?n.createElement("svg",{style:{width:"100%"}},n.createElement(kt,{overview:a,assembly:h,block:o})):null))})),Et=w.observer((function(e){var t=e.model,r=e.scale,o=e.overview,a=ht(),i=b.useTheme(),l=t.showCytobands,c=t.cytobandOffset,s=t.dynamicBlocks.contentBlocks,u=o.dynamicBlocks,d=i.palette,f=d.tertiary,m=f?f.light:d.primary.light;if(!s.length)return null;var p=s[0],g=o.bpToPx(he(he({},p),{},{coord:p.reversed?p.end:p.start}))||0,h=s[s.length-1],v=o.bpToPx(he(he({},h),{},{coord:h.reversed?h.start:h.end}))||0,y=l?"#f00":m;return n.createElement("div",{className:a.scaleBar},n.createElement("div",{className:a.scaleBarVisibleRegion,style:{width:v-g,left:g+c,background:b.alpha(y,l?.1:.3),borderColor:y}}),u.map((function(e,i){return e instanceof S.ContentBlock?n.createElement(wt,{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 xt(e){var t=e.model,r=e.children,o=ht(),a=t.totalBp,i=t.width,l=t.cytobandOffset,c=t.displayedRegions,s=M.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(gt,{model:t,overview:s,ControlComponent:n.createElement(Et,{model:t,overview:s,scale:a/(u-2*(c.length-1))})}),n.createElement("div",{className:o.overview},n.createElement("svg",{height:jn,className:o.overviewSvg},n.createElement(vt,{model:t,overview:s})),r))}var St=w.observer(xt);function Ct(e){var t,r=e.model,o=e.fontSize,a=r.offsetPx,i=r.dynamicBlocks,l=i.totalWidthPxWithoutBorders,c=(t=i.totalBp,Math.floor(t/1e6)>0?"".concat(parseFloat((t/1e6).toPrecision(3)),"Mbp"):Math.floor(t/1e3)>0?"".concat(parseFloat((t/1e3).toPrecision(3)),"Kbp"):"".concat(Math.floor(t),"bp")),s=Math.max(-a,0),u=s+l;return n.createElement(n.Fragment,null,n.createElement("line",{x1:s,x2:u,y1:10,y2:10,stroke:"black"}),n.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),n.createElement("line",{x1:u,x2:u,y1:5,y2:15,stroke:"black"}),n.createElement("text",{x:s+(u-s)/2,y:2*o,textAnchor:"middle",fontSize:o},c))}function Pt(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(dt,{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)},Bt=function(e){var t=e.model,r=t.width,o=t.assemblyNames,a=t.showCytobands,i=t.displayedRegions,l=s.getSession(t),c=o.length>1?"":o[0],u=l.assemblyManager.get(c),d=M.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:u,block:m}),n.createElement("rect",{stroke:"red",fill:"rgb(255,0,0,0.1)",width:Math.max(v-g,.5),height:zn-1,x:g,y:.5}),n.createElement("g",{transform:"translate(0,".concat(zn,")")},n.createElement(vt,{overview:d,model:t,useOffset:!1}))):null,n.createElement("g",{transform:"translate(0 ".concat(15+y,")")},n.createElement(Ct,{model:t,fontSize:15})),n.createElement("g",{transform:"translate(0 ".concat(50+y,")")},n.createElement(Pt,{model:t,fontSize:15,width:r})))},Rt=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,o=e.offset;return n.createElement(n.Fragment,null,e.displayResults.map((function(e){var a=e.track,i=e.result,l=o,c=r.getConf(a,"name")||"Reference sequence (".concat(r.readConfObject(y.getParent(a.configuration),"name"),")"),s=a.displays[0];return o+=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(Rt,{model:t,height:s.height})))})))}function Mt(e,t){return Lt.apply(this,arguments)}function Lt(){return(Lt=be(Oe.mark((function e(t,r){var o,a,i,l,c,s;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,v.when((function(){return t.initialized}));case 2:return o=t.width,i=50,l=90+(t.showCytobands?100:0)+20,c=Tt(a=t.tracks)+l,e.next=8,Promise.all(a.map(function(){var e=be(Oe.mark((function e(t){var n;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.displays[0],e.next=3,v.when((function(){return void 0===n.ready||n.ready}));case 3:return e.next=5,n.renderSvg(r);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 s=e.sent,e.abrupt("return",H.renderToStaticMarkup(n.createElement("svg",{width:o,height:c,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:[0,0,o+2*i,c].toString()},n.createElement("rect",{width:o+2*i,height:c,fill:"white"}),n.createElement("g",{stroke:"none",transform:"translate(".concat(i," ").concat(15,")")},n.createElement(Bt,{model:t}),n.createElement(Nt,{model:t,displayResults:s,offset:l})))));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Dt(){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 Un}))})),It=function(e){var t=e.style;return n.createElement(b.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 Ft(e){var r=e.model,o=e.onSelect,a=e.assemblyName,i=e.style,l=e.fetchResults,c=e.value,u=e.minWidth,d=void 0===u?200:u,f=e.TextFieldProps,m=void 0===f?{}:f,p=s.getSession(r),g=p.assemblyManager,h=Te(t.useState(!1),2),v=h[0],y=h[1],k=Te(t.useState(!0),2),w=k[0],E=k[1],x=Te(t.useState(!1),2),S=x[0],C=x[1],P=Te(t.useState(""),2),T=P[0],B=P[1],R=Te(t.useState(""),2),N=R[0],M=R[1],L=Te(t.useState(),2),D=L[0],O=L[1],I=s.useDebounce(T,300),F=r.coarseVisibleLocStrings,j=r.hasDisplayedRegions,z=a?g.get(a):void 0,q=(null==z?void 0:z.regions)||[],A=t.useMemo((function(){return q.map((function(e){return{result:new V.RefSequenceResult({refName:e.refName,label:e.refName,matchedAttribute:"refName"})}}))}),[q]);t.useEffect((function(){var e=!0;return be(Oe.mark((function t(){var n;return Oe.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,""!==I&&a){t.next=3;break}return t.abrupt("return");case 3:return E(!1),t.next=6,l(I);case 6:n=t.sent,e&&(O(Dt(n,(function(e){return e.getDisplayString()})).map((function(e){return{result:e}}))),E(!0)),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e&&p.notify("".concat(t.t0),"error");case 14:case"end":return t.stop()}}),t,null,[[0,10]])})))(),function(){e=!1}}),[a,l,I,p,r]);var H=F||c||"",W=Math.min(Math.max(s.measureText(H,16)+45,d),550);return n.createElement(n.Fragment,null,n.createElement(U,{id:"refNameAutocomplete-".concat(r.id),"data-testid":"autocomplete",disableListWrap:!0,disableClearable:!0,PopperComponent:It,disabled:!a,freeSolo:!0,includeInputInList:!0,selectOnFocus:!0,style:he(he({},i),{},{width:W}),value:H,loading:!w,inputValue:N,onInputChange:function(e,t){return M(t)},loadingText:"loading results",open:v,onOpen:function(){return y(!0)},onClose:function(){y(!1),E(!0),j&&(B(""),O(void 0))},onChange:function(e,t){t&&a&&(o("string"==typeof t?new G({label:t}):t.result),M(H))},options:null!=D&&D.length?D:A,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(Be(n.slice(0,100)),Be(n.length>100?[{group:"limitOption",result:new G({label:"keep typing for more results"})}]:[]))},renderInput:function(e){var t=m.InputProps,r=void 0===t?{}:t;return n.createElement(b.TextField,Object.assign({onBlur:function(){M(H)}},e,m,{helperText:m.helperText,InputProps:he(he(he({},e.InputProps),r),{},{endAdornment:n.createElement(n.Fragment,null,0===q.length?n.createElement(b.CircularProgress,{color:"inherit",size:20}):n.createElement(b.InputAdornment,{position:"end",style:{marginRight:7}},n.createElement(X,null),n.createElement(b.IconButton,{onClick:function(){return C(!0)}},n.createElement(J,null))),e.InputProps.endAdornment)}),placeholder:"Search for location",onChange:function(e){B(e.target.value)}}))},renderOption:function(e){var t=e.result,r=t.getRenderingComponent();return r&&n.isValidElement(r)?r:n.createElement(b.Typography,{noWrap:!0},t.getDisplayString())},getOptionLabel:function(e){return("string"==typeof e?e:e.result.getLabel())||""}}),S?n.createElement(t.Suspense,{fallback:n.createElement("div",null)},n.createElement(Ot,{handleClose:function(){return C(!1)}})):null)}var jt=w.observer(Ft),zt=x.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function qt(e){var r,o=e.model,a=e.handleClose,i="undefined"!=typeof OffscreenCanvas,l=Te(t.useState(i),2),c=l[0],s=l[1],u=Te(t.useState(!1),2),d=u[0],f=u[1],m=Te(t.useState(),2),p=m[0],g=m[1],h=zt();return n.createElement(b.Dialog,{open:!0,onClose:a},n.createElement(b.DialogTitle,null,"Export SVG",n.createElement(b.IconButton,{className:h.closeButton,onClick:a},n.createElement(Y,null))),n.createElement(b.DialogContent,null,p?n.createElement("div",{style:{color:"red"}},"".concat(p)):d?n.createElement("div",null,n.createElement(b.CircularProgress,{size:20,style:{marginRight:20}}),n.createElement(b.Typography,{display:"inline"},"Creating SVG")):null,i?n.createElement(b.FormControlLabel,{control:n.createElement(b.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(b.Typography,null,"Note: rasterizing layers not yet supported in this browser, so SVG size may be large")),n.createElement(b.DialogActions,null,n.createElement(b.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),n.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",onClick:(r=be(Oe.mark((function e(){return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),g(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),g(e.t0);case 12:return e.prev=12,f(!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 At=x.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Ht(e){var t=e.model,r=e.handleClose,o=At();return n.createElement(b.Dialog,{maxWidth:"xl",open:!0,onClose:r},n.createElement(b.DialogTitle,null,"Reference sequence",r?n.createElement(b.IconButton,{className:o.closeButton,onClick:function(){r()}},n.createElement(Y,null)):null),n.createElement(b.Divider,null),n.createElement(b.DialogContent,null,n.createElement(b.Typography,null,"Are you sure you want to return to the import form? This will lose your current view")),n.createElement(b.DialogActions,null,n.createElement(b.Button,{onClick:function(){t.clearView(),r()},variant:"contained",color:"primary",autoFocus:!0},"OK"),n.createElement(b.Button,{onClick:function(){r()},color:"secondary",variant:"contained",autoFocus:!0},"Cancel")))}var Wt=w.observer(Ht),_t=x.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function Vt(e){var r=e.model,o=_t(),a=r.maxBpPerPx,i=r.minBpPerPx,l=r.bpPerPx,c=r.scaleFactor,s=Te(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 Gt=w.observer(Vt),Xt=b.makeStyles((function(e){return{headerBar:{height:jn,display:"flex"},headerForm:{flexWrap:"nowrap",marginRight:7},spacer:{flexGrow:1},input:{},headerRefName:{minWidth:100},panButton:{background:b.alpha(e.palette.background.paper,.8),height:32,margin:7},bp:{display:"flex",alignItems:"center",marginLeft:5},toggleButton:{height:44,border:"none",margin:e.spacing(.5)},buttonSpacer:{marginRight:e.spacing(2)}}})),Ut=w.observer((function(e){var t=e.model,r=Xt();return n.createElement(b.Button,{onClick:t.activateTrackSelector,className:r.toggleButton,title:"Open track selector",value:"track_select",color:"secondary"},n.createElement(O.TrackSelector,{className:r.buttonSpacer}))}));function Jt(e){var t=e.model,r=Xt();return n.createElement(n.Fragment,null,n.createElement(b.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(-.9)}},n.createElement(K,null)),n.createElement(b.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(.9)}},n.createElement(Z,null)))}var Yt=w.observer((function(e){var t=e.model,r=Xt();return n.createElement(b.Typography,{variant:"body2",color:"textSecondary",className:r.bp},"".concat(Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp"))})),Zt=w.observer((function(e){var t=e.model,r=Xt(),o=b.useTheme(),a=s.getSession(t),i=a.textSearchManager,l=t.rankSearchResults,c=t.assemblyNames[0],u=a.assemblyManager.get(c),d=t.searchScope(c);function f(e,t){return m.apply(this,arguments)}function m(){return(m=be(Oe.mark((function e(t,n){var r,o,a;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i||console.warn("No text search manager"),e.next=3,null==i?void 0:i.search({queryString:t,searchType:n},d,l);case 3:return o=e.sent,a=null==u||null===(r=u.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",Dt([].concat(Be(a||[]),Be(o||[])),(function(e){return e.getId()})));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(){return(p=be(Oe.mark((function e(n){var r,o,i,l,s;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getTrackId(),o=n.getLocation(),i=n.getLabel(),e.prev=3,null==u||null===(l=u.allRefNames)||void 0===l||!l.includes(o)){e.next=8;break}t.navToLocString(o),e.next=19;break;case 8:return e.next=10,f(i,"exact");case 10:if(!((s=e.sent)&&s.length>1)){e.next=16;break}return t.setSearchResults(s,i.toLowerCase()),e.abrupt("return");case 16:1===(null==s?void 0:s.length)&&(o=s[0].getLocation(),r=s[0].getTrackId());case 17:t.navToLocString(o,c),r&&t.showTrack(r);case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(3),console.error(e.t0),a.notify("".concat(e.t0),"warning");case 25:case"end":return e.stop()}}),e,null,[[3,21]])})))).apply(this,arguments)}var g=n.createElement("div",{className:r.headerBar},n.createElement(Ut,{model:t}),n.createElement("div",{className:r.spacer}),n.createElement(b.FormGroup,{row:!0,className:r.headerForm},n.createElement(Jt,{model:t}),n.createElement(jt,{onSelect:function(e){return p.apply(this,arguments)},assemblyName:c,fetchResults:f,model:t,TextFieldProps:{variant:"outlined",className:r.headerRefName,style:{margin:7,minWidth:"175px"},InputProps:{style:{padding:0,height:32,background:b.alpha(o.palette.background.paper,.8)}}}})),n.createElement(Yt,{model:t}),n.createElement(Gt,{model:t}),n.createElement("div",{className:r.spacer}));return t.hideHeaderOverview?g:n.createElement(St,{model:t},g)})),Kt=x.makeStyles((function(e){return{root:{background:x.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)}}})),Qt=w.observer(n.forwardRef((function(e,t){var o,a=Kt(),i=Te(n.useState(null),2),l=i[0],c=i[1],u=e.track,d=e.className,f=s.getContainingView(u),m=s.getSession(u),p=u.configuration,h=r.getConf(u,"trackId"),v=function(){c(null)},y=r.getConf(u,"name");"ReferenceSequenceTrack"===r.getConf(u,"type")&&(y="Reference Sequence",m.assemblies.forEach((function(e){e.sequence===p&&(y="Reference Sequence (".concat(r.readConfObject(e,"name"),")"))})));var b=u.trackMenuItems();return n.createElement(n.Fragment,null,n.createElement(te,{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),f.setDraggingTrackId(u.id))},onDragEnd:function(){f.setDraggingTrackId(void 0)},"data-testid":"dragHandle-".concat(f.id,"-").concat(h)},n.createElement(re,{className:a.dragHandleIcon})),n.createElement(Q,{onClick:function(){return f.hideTrack(h)},className:a.iconButton,title:"close this track",color:"secondary"},n.createElement(Y,null)),n.createElement(g,{variant:"body1",component:"span",className:a.trackName},y),n.createElement(Q,{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:function(e){c(e.currentTarget)},className:a.iconButton,color:"secondary","data-testid":"track_menu_icon",disabled:!b.length},n.createElement(ne,null))),n.createElement(k.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:[].concat(Be(null===(o=m.getTrackActionMenuItems)||void 0===o?void 0:o.call(m,p)),Be(b)).sort((function(e,t){return(t.priority||0)-(e.priority||0)}))}))}))),$t=x.makeStyles((function(e){return{root:{},resizeHandle:{height:An,boxSizing:"border-box",position:"relative",zIndex:2},overlay:{pointerEvents:"none",position:"absolute",top:0,left:0,width:"100%",zIndex:3,borderRadius:e.shape.borderRadius},renderingComponentContainer:{position:"absolute",left:-1,height:"100%",width:"100%"},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,boxSizing:"content-box"}}}));function en(e){var o=$t(),a=e.model,i=e.track,l=i.displays[0],c=a.horizontalScroll,u=a.draggingTrackId,d=a.moveTrack,f=l.height,m=s.getContainingView(l),p=r.getConf(i,"trackId"),g=t.useRef(null);t.useEffect((function(){return g.current&&(a.trackRefs[p]=g.current),function(){delete a.trackRefs[p]}}),[a.trackRefs,p]);var h=s.useDebouncedCallback((function(){void 0!==u&&y.isAlive(l)&&u!==l.id&&d(u,i.id)}),100),v=l.RenderingComponent,b=l.DisplayBlurb,w=void 0!==u&&u!==l.id;return n.createElement("div",{className:o.root},"hidden"!==m.trackLabels?n.createElement(Qt,{track:i,className:_(o.trackLabel,"overlapping"===m.trackLabels?o.trackLabelOverlap:o.trackLabelInline)}):null,n.createElement(te,{variant:"outlined",className:o.trackRenderingContainer,style:{height:f},onScroll:function(e){l.setScrollTop(e.target.scrollTop)},onDragEnter:h,"data-testid":"trackRenderingContainer-".concat(m.id,"-").concat(p),role:"presentation"},n.createElement("div",{ref:g,className:o.renderingComponentContainer,style:{transform:"scaleX(".concat(a.scaleFactor,")")}},n.createElement(v,{model:l,blockState:{},onHorizontalScroll:c})),b?n.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}}," ",n.createElement(b,{model:l})):null),n.createElement("div",{className:o.overlay,style:{height:l.height,background:w?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:h}),n.createElement(k.ResizeHandle,{onDrag:l.resizeHeight,className:o.resizeHandle}))}var tn=w.observer(en),nn=x.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}}})),rn=w.observer((function(e){var t=e.model,r=e.coordX,o=nn();return n.createElement(le,{open:!0,placement:"top",title:s.stringify(t.pxToBp(r)),arrow:!0},n.createElement("div",{className:o.guide,style:{left:r,background:"red"}}))}));function on(e){var r=e.model,o=e.ControlComponent,a=void 0===o?n.createElement("div",null):o,i=Te(t.useState(),2),l=i[0],c=i[1],u=Te(t.useState(),2),d=u[0],f=u[1],m=Te(t.useState(),2),p=m[0],h=m[1],v=Te(t.useState(),2),y=v[0],b=v[1],w=t.useRef(null),E=t.useRef(null),x=nn(),S=void 0!==l&&void 0===p,C=r.setOffsets,P=r.pxToBp;function T(e){e.preventDefault(),e.stopPropagation();var t=e.clientX-e.target.getBoundingClientRect().left;c(t),f(t)}function B(e){b(e.clientX-e.target.getBoundingClientRect().left)}function R(){b(void 0),r.setOffsets(void 0,void 0)}function N(){h(void 0),c(void 0),f(void 0)}t.useEffect((function(){function e(e){if(w.current&&S){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;h({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);C(o.leftOffset,o.rightOffset),b(void 0)}}return S?(window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),function(){window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}):function(){}}),[l,S,p,C,P]),t.useEffect((function(){!S&&void 0!==d&&void 0!==l&&Math.abs(d-l)<=3&&N()}),[S,d,l,r.bpPerPx]);var M=Boolean(p);if(void 0===l)return n.createElement(n.Fragment,null,void 0!==y?n.createElement(rn,{model:r,coordX:y}):null,n.createElement("div",{"data-testid":"rubberBand_controls",className:x.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a));var L=p?p.offsetX:d||0,D=L<l?L:l,O=Math.abs(L-l),I=r.pxToBp(D),F=r.pxToBp(D+O),j=Math.ceil(O*r.bpPerPx);return n.createElement(n.Fragment,null,E.current?n.createElement(n.Fragment,null,n.createElement(ie,{className:x.popover,classes:{paper:x.paper},open:!0,anchorEl:E.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(g,null,s.stringify(I))),n.createElement(ie,{className:x.popover,classes:{paper:x.paper},open:!0,anchorEl:E.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(g,null,s.stringify(F)))):null,n.createElement("div",{ref:E,className:x.rubberBand,style:{left:D,width:O}},n.createElement(g,{variant:"h6",className:x.rubberBandText},j.toLocaleString("en-US")," bp")),n.createElement("div",{"data-testid":"rubberBand_controls",className:x.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a),p?n.createElement(k.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:p.clientX,top:p.clientY},onMenuItemClick:function(e,t){t(),N()},open:M,onClose:N,menuItems:r.rubberBandMenuItems()}):null)}on.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},on.defaultProps={ControlComponent:n.createElement("div",null)};var an=w.observer(on),ln=["model","style","className"],cn=x.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}}})),sn=w.observer((function(e){var t=e.model,r=cn(),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 S.ContentBlock&&(e.isLeftEndOfDisplayedRegion||a===o)?n.createElement(g,{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})))})),un=w.observer((function(e){var t=e.model,r=cn();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ct(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(g,{className:r.majorTickLabel},i):null)}return null})))}return e instanceof S.ElidedBlock?n.createElement(je,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?n.createElement(ze,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant}):null})))})),dn=w.observer(n.forwardRef((function(e,t){var r=e.model,o=e.style,a=e.className,i=Se(e,ln),l=cn(),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(un,{model:r}))),n.createElement(sn,{model:r}))}))),fn=x.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}}})),mn=w.observer((function(e){var t=e.model,r=fn();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ct(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 S.ElidedBlock?n.createElement(je,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?n.createElement(ze,{key:e.key,width:e.widthPx,boundary:"boundary"===e.variant}):null})))}));function pn(e){var t=e.model,r=fn(),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(mn,{model:t})))}var gn=w.observer(pn),hn=x.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 vn(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=hn();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}vn.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired};var yn=w.observer(vn),bn=x.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:An}}}));function kn(e){var r=e.children,o=e.model,a=bn(),i=t.useRef(0),l=t.useRef(!1),c=t.useRef(),s=t.useRef(null),u=t.useRef(0),d=Te(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(gn,{model:o}),o.showCenterLine?n.createElement(yn,{model:o}):null,n.createElement(an,{model:o,ControlComponent:n.createElement(dn,{model:o,style:{height:qn,boxSizing:"border-box"}})}),n.createElement("div",{className:a.spacer}),r)}var wn=w.observer(kn),En=t.lazy((function(){return Promise.resolve().then((function(){return Dn}))})),xn=b.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),Sn=w.observer((function(e){var r,o=e.model,a=xn(),i=s.getSession(o),l=i.assemblyNames,c=i.assemblyManager,u=i.textSearchManager,d=o.rankSearchResults,f=o.isSearchDialogDisplayed,m=o.error,p=Te(t.useState(l[0]),2),g=p[0],h=p[1],v=Te(t.useState(m),2),y=v[0],k=v[1],w=o.searchScope(g),E=c.get(g),x=l.length?null==E?void 0:E.error:"No configured assemblies",S=(null==E?void 0:E.regions)||[],C=x||y,P=Te(t.useState(),2),T=P[1],B=P[0]||new G({label:null===(r=S[0])||void 0===r?void 0:r.refName}),R=null==B?void 0:B.getLocation();function N(e,t){return M.apply(this,arguments)}function M(){return(M=be(Oe.mark((function e(t,n){var r,o,a;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u||console.warn("No text search manager"),e.next=3,null==u?void 0:u.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(Be(a||[]),Be(o||[])));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(){return(L=be(Oe.mark((function e(t){var n,r,a,l;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(B){e.next=2;break}return e.abrupt("return");case 2:if(n=B.getTrackId(),r=t||B.getLocation()||"",e.prev=4,null==E||null===(a=E.allRefNames)||void 0===a||!a.includes(r)){e.next=9;break}o.navToLocString(r,g),e.next=20;break;case 9:return e.next=11,N(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,g),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(se,{error:C}):null,n.createElement(b.Container,{className:a.importFormContainer},n.createElement("form",{onSubmit:function(e){return e.preventDefault()}},n.createElement(b.Grid,{container:!0,spacing:1,justifyContent:"center",alignItems:"center"},n.createElement(b.Grid,{item:!0},n.createElement(ce,{onChange:function(e){k(void 0),h(e)},session:i,selected:g})),n.createElement(b.Grid,{item:!0},g?C?n.createElement(Y,{style:{color:"red"}}):R?n.createElement(jt,{fetchResults:N,model:o,assemblyName:x?void 0:g,value:R,minWidth:270,onSelect:function(e){return T(e)},TextFieldProps:{margin:"normal",variant:"outlined",helperText:"Enter sequence name, feature name, or location"}}):n.createElement(b.CircularProgress,{role:"progressbar",size:20,disableShrink:!0}):null),n.createElement(b.Grid,{item:!0}),n.createElement(b.Grid,{item:!0},n.createElement(b.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(b.Button,{disabled:!R,className:a.button,onClick:function(){o.setError(void 0),o.showAllRegionsInAssembly(g)},variant:"contained",color:"secondary"},"Show all regions in assembly"))))),f?n.createElement(En,{model:o,optAssemblyName:g,handleClose:function(){return o.setSearchResults(void 0,void 0)}}):null)})),Cn=w.observer((function(e){var r=e.model,o=r.bpPerPx,a=r.maxBpPerPx,i=r.minBpPerPx,l=r.scaleFactor,c=Te(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()}))})),Pn=b.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 Tn(e,t,n){return Bn.apply(this,arguments)}function Bn(){return(Bn=be(Oe.mark((function e(t,n,o){var a,i,l,c,u,d,f;return Oe.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=s.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(u=i.assemblyName||l.assemblyName||"")){e.next=11;break}throw new Error("assembly ".concat(u," not found"));case 11:return f=r.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:o})})));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 Rn(e){var r=e.model,o=e.handleClose,a=Pn(),i=s.getSession(r),l=Te(t.useState(),2),c=l[0],u=l[1],d=Te(t.useState(),2),f=d[0],m=d[1],p=Boolean(void 0===f),g=r.leftOffset,h=r.rightOffset,v=t.useMemo((function(){return r.getSelectedRegions(g,h)}),[r,g,h]);t.useEffect((function(){var e=!0,t=new AbortController;return be(Oe.mark((function n(){var o;return Oe.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,!(v.length>0)){n.next=8;break}return n.next=4,Tn(r,v,t.signal);case 4:o=n.sent,e&&m(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&&u(n.t0);case 15:case"end":return n.stop()}}),n,null,[[0,11]])})))(),function(){t.abort(),e=!1}}),[r,i,v,m]);var y=!!f&&f.length>1e6;return n.createElement(b.Dialog,{"data-testid":"sequence-dialog",maxWidth:"xl",open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Reference sequence",o?n.createElement(b.IconButton,{"data-testid":"close-seqDialog",className:a.closeButton,onClick:function(){o(),r.setOffsets(void 0,void 0)}},n.createElement(Y,null)):null),n.createElement(b.Divider,null),n.createElement(b.DialogContent,null,c?n.createElement(b.Typography,{color:"error"},"".concat(c)):null,p&&!c?n.createElement(b.Container,null,"Retrieving reference sequence...",n.createElement(b.CircularProgress,{style:{marginLeft:10},size:20,disableShrink:!0})):null,n.createElement(b.TextField,{"data-testid":"rubberband-sequence",variant:"outlined",multiline:!0,rows:5,disabled:y,className:a.dialogContent,fullWidth:!0,value:y?"Reference sequence too large to display, use the download FASTA button":f,InputProps:{readOnly:!0,classes:{input:a.textAreaFont}}})),n.createElement(b.DialogActions,null,n.createElement(b.Button,{onClick:function(){fe(f||""),i.notify("Copied to clipboard","success")},disabled:p||!!c||y,color:"primary",startIcon:n.createElement(O.ContentCopy,null)},"Copy to clipboard"),n.createElement(b.Button,{onClick:function(){var e=new Blob([f||""],{type:"text/x-fasta;charset=utf-8"});D.saveAs(e,"jbrowse_ref_seq.fa")},disabled:p||!!c,color:"primary",startIcon:n.createElement(pe,null)},"Download FASTA"),n.createElement(b.Button,{onClick:o,color:"primary",autoFocus:!0},"Close")))}var Nn=w.observer(Rn),Mn=b.makeStyles((function(e){return{dialogContent:{width:"80em"},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Ln(e){var t,r,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=Mn(),c=s.getSession(o),u=y.getEnv(c).pluginManager,d=c.assemblyManager,f=a;if(o.displayedRegions.length>0&&(f=null===(r=o.displayedRegions[0])||void 0===r?void 0:r.assemblyName),!f)throw new Error("Assembly name not found");var m=d.get(f);if(!m)throw new Error("assembly ".concat(f," not found"));if(!m.regions)throw new Error("assembly ".concat(f," regions not loaded"));var p=m.regions;function g(e){if(e){var t,n=u.pluggableConfigSchemaType("track"),r=y.resolveIdentifier(n,y.getRoot(o),e);if(r)return null===(t=r.name)||void 0===t?void 0:t.value}return""}return n.createElement(b.Dialog,{open:!0,maxWidth:"xl",onClose:i},n.createElement(b.DialogTitle,null,"Search results",i?n.createElement(b.IconButton,{"data-testid":"close-resultsDialog",className:l.closeButton,onClick:function(){i()}},n.createElement(Y,null)):null),n.createElement(b.Divider,null),n.createElement(b.DialogContent,null,null!==(t=o.searchResults)&&void 0!==t&&t.length?n.createElement(n.Fragment,null,n.createElement(b.Typography,null,"Showing results for ",n.createElement("b",null,o.searchQuery)),n.createElement(b.TableContainer,{component:b.Paper},n.createElement(b.Table,null,n.createElement(b.TableHead,null,n.createElement(b.TableRow,null,n.createElement(b.TableCell,null,"Name"),n.createElement(b.TableCell,{align:"right"},"Location"),n.createElement(b.TableCell,{align:"right"},"Track"),n.createElement(b.TableCell,{align:"right"}))),n.createElement(b.TableBody,null,o.searchResults.map((function(e){return n.createElement(b.TableRow,{key:"".concat(e.getId())},n.createElement(b.TableCell,{component:"th",scope:"row"},e.getLabel()),n.createElement(b.TableCell,{align:"right"},e.getLocation()),n.createElement(b.TableCell,{align:"right"},g(e.getTrackId())||"N/A"),n.createElement(b.TableCell,{align:"right"},n.createElement(b.Button,{onClick:function(){!function(e){try{var t=p.find((function(t){return e===t.refName}));t?(o.setDisplayedRegions([t]),o.showAllRegions()):o.navToLocString(e,f)}catch(e){console.warn(e),c.notify("".concat(e),"warning")}}(e.getLocation());var t=e.getTrackId();t&&o.showTrack(t),i()},disabled:!g(e.getTrackId()),color:"primary",variant:"contained"},"Go")))})))))):n.createElement(b.Typography,null,"No results found for ",n.createElement("b",null,o.searchQuery))),n.createElement(b.Divider,null),n.createElement(b.DialogActions,null,n.createElement(b.Button,{onClick:function(){return i()},color:"primary"},"Cancel")))}var Dn={__proto__:null,useStyles:Mn,default:Ln},On=b.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:'"..."'}}}})),In={__proto__:null,default:w.observer((function(e){var t=e.model,r=t.tracks,o=t.error,a=t.hideHeader,i=t.initialized,l=t.hasDisplayedRegions,c=On();return i||o?!l||o?n.createElement(Sn,{model:t}):n.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?n.createElement(Nn,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?n.createElement(Ln,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?n.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},n.createElement(Cn,{model:t})):n.createElement(Zt,{model:t}),n.createElement(wn,{model:t},r.length?r.map((function(e){return n.createElement(tn,{key:e.id,model:t,track:e})})):n.createElement(b.Paper,{variant:"outlined",className:c.note},n.createElement(b.Typography,null,"No tracks active."),n.createElement(b.Button,{variant:"contained",color:"primary",onClick:t.activateTrackSelector,style:{zIndex:1e3},startIcon:n.createElement(O.TrackSelector,null)},"Open track selector")))):n.createElement(b.Typography,{className:c.dots,variant:"h5"},"Loading")}))};function Fn(e){if(!e.length)return"";var t=e.every((function(t){return t.assemblyName===e[0].assemblyName}));return e.map((function(e){return s.assembleLocString(he(he({},e),{},{start:Math.round(e.start),end:Math.round(e.end),assemblyName:t?void 0:e.assemblyName}))})).join(";")}var jn=48,zn=20,qn=17,An=3;function Hn(e){return y.types.compose(o.BaseViewModel,y.types.model("LinearGenomeView",{id:C.ElementId,type:y.types.literal("LinearGenomeView"),offsetPx:0,bpPerPx:1,displayedRegions:y.types.array(C.Region),tracks:y.types.array(e.pluggableMstType("track","stateModel")),hideHeader:!1,hideHeaderOverview:!1,trackSelectorType:y.types.optional(y.types.enumeration(["hierarchical"]),"hierarchical"),trackLabels:"overlapping",showCenterLine:!1,showCytobandsSetting:!0})).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=s.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=s.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 qn+An},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?jn:jn+zn},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*An},get height(){return this.trackHeightsWithResizeHandles+this.headerHeight+this.scaleBarHeight},get totalBp(){var t=0;return e.displayedRegions.forEach((function(e){t+=e.end-e.start})),t},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({},m.getParentRenderProps(e)),{},{bpPerPx:e.bpPerPx,highResolutionScaling:r.getConf(s.getSession(e),"highResolutionScaling")})},get assemblyNames(){return Be(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))))},searchScope:function(t){return{assemblyName:t,includeAggregateIndexes:!0,tracks:e.tracks}},bpToPx:function(t){var n=t.refName,r=t.coord,o=t.regionNumber,a=0,i=e.interRegionPaddingWidth*e.bpPerPx,l=e.minimumBlockWidth*e.bpPerPx,c=e.displayedRegions.findIndex((function(t,c){var s=t.end-t.start;return n===t.refName&&r>=t.start&&r<=t.end&&(!o||o===c)?(a+=t.reversed?t.end-r:r-t.start,!0):(a+=s>l&&a/e.bpPerPx>=0&&a/e.bpPerPx<e.width?s+i:s,!1)}));if(e.displayedRegions[c])return{index:c,offsetPx:Math.round(a/e.bpPerPx)}},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({},y.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({},y.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({},y.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},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=s.clamp(e,t.minOffset,t.maxOffset);return t.offsetPx=n,n},zoomTo:function(e){var n=s.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=y.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=y.resolveIdentifier(a,y.getRoot(t),n);if(!i)throw new Error("Could not resolve identifier");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 r=e.pluggableConfigSchemaType("track"),o=y.resolveIdentifier(r,y.getRoot(t),n),a=t.tracks.filter((function(e){return e.configuration===o}));return v.transaction((function(){return a.forEach((function(e){return t.tracks.remove(e)}))})),a.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=y.getSnapshot(e.tracks[r]);e.tracks.splice(r,1),e.tracks.splice(o,0,a)},closeView:function(){var t=s.getContainingView(e);t?s.isViewContainer(t)&&t.removeView(e):s.getSession(e).removeView(e)},toggleTrack:function(t){e.hideTrack(t)||e.showTrack(t)},setTrackLabels:function(t){e.trackLabels=t},toggleCenterLine:function(){e.showCenterLine=!e.showCenterLine},setDisplayedRegions:function(t){e.displayedRegions=y.cast(t),e.zoomTo(e.bpPerPx)},activateTrackSelector:function(){if("hierarchical"===e.trackSelectorType){var t=s.getSession(e);if(s.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=s.getSession(e).assemblyManager,o=r.isValidRefName,a=t.split(";");if(e.displayedRegions.length>1){var i=a.map((function(e){return s.parseLocString(e,o)}));this.navToMultiple(i)}else{var l=n,c="";0!==e.displayedRegions.length&&(l=e.displayedRegions[0].assemblyName,c=e.displayedRegions[0].refName);var u=l&&r.get(l);if(!u)throw new Error("Could not find assembly ".concat(l));var d=u.regions;if(!d)throw new Error("Regions for assembly ".concat(l," not yet loaded"));if(a.length>1)throw new Error("Navigating to multiple locations is not allowed when viewing a whole chromosome");var f=s.parseLocString(a[0],(function(e){return o(e,l)})),m=!1;if(f.assemblyName&&f.assemblyName!==l){var p=r.get(f.assemblyName);if(!p)throw new Error("Could not find assembly ".concat(f.assemblyName));u=p,m=!0;var g=p.regions;if(!g)throw new Error("Regions for assembly ".concat(f.assemblyName," not yet loaded"));d=g}var h=u.getCanonicalRefName(f.refName);if(!h)throw new Error("Could not find refName ".concat(f.refName," in ").concat(u.name));if(m||h!==c){var v=d.find((function(e){return e.refName===h}));if(!v)throw new Error("Could not find refName ".concat(f.refName," in ").concat(u.name));this.setDisplayedRegions([v])}var y=d.find((function(e){return e.refName===h}));if(y){var b,k,w=s.clamp(null!==(b=null==f?void 0:f.start)&&void 0!==b?b:0,0,y.end),E=s.clamp(null!==(k=null==f?void 0:f.end)&&void 0!==k?k:y.end,0,y.end);this.navTo(he(he({},f),{},{start:w,end:E}))}}},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=s.getSession(e).assemblyManager.get(l);if(c){var u=c.getCanonicalRefName(r);u&&(r=u)}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=s.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(s.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(s.assembleLocString(E)," does not match with displayed regions"));if(b>0&&!(x.reversed?w===x.end:k===x.start))throw new Error("".concat(x.reversed?"End":"Start"," of region ").concat(s.assembleLocString(E)," should be ").concat((x.reversed?x.end:x.start+1).toLocaleString("en-US"),", but it is not"));if(b!==t.length-1&&!(x.reversed?k===x.start:w===x.end))throw new Error("".concat(x.reversed?"Start":"End"," of region ").concat(s.assembleLocString(E)," should be ").concat((x.reversed?x.start+1:x.end).toLocaleString("en-US"),", but it is not"))}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):s.getSession(e).notify("No regions found to navigate to","warning")}},getSelectedRegions:function(t,n){var r=M.create(he(he({},y.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=s.getSession(e),r=n.assemblyManager;if(!t){var o=Be(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=Te(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=Te(s.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=Te(s.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=s.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?s.measureText(e.displayedRegions[0].refName,12)+15:0}}})).views((function(e){var t,n="";return{menuItems:function(){var t,n=e.showCytobands,r=[{label:"Return to import form",onClick:function(){s.getSession(e).queueDialog((function(t){return[Wt,{model:e,handleClose:t}]}))},icon:z},{label:"Export SVG",icon:q,onClick:function(){s.getSession(e).queueDialog((function(t){return[qt,{model:e,handleClose:t}]}))}},{label:"Open track selector",onClick:e.activateTrackSelector,icon:O.TrackSelector},{label:"Horizontally flip",icon:I,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:j,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(Be(e.canShowCytobands?[{label:n?"Hide ideogram":"Show ideograms",onClick:function(){e.setShowCytobands(!n)}}]:[])),o=Me(e.trackTypeActions.entries());try{for(o.s();!(t=o.n()).done;){var a=Te(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},get staticBlocks(){var r=N(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 Fn(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return Fn(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;y.addDisposer(e,v.autorun((function(){e.initialized&&t.setCoarseDynamicBlocks(e.dynamicBlocks)}),{delay:150}))}}})).actions((function(e){return{exportSvg:function(){var t=arguments;return be(Oe.mark((function n(){var r,o;return Oe.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,Mt(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:h,onClick:function(){e.setSequenceDialogOpen(!0)}}]}}}))}var Wn=t.lazy((function(){return Promise.resolve().then((function(){return Zn}))})),_n=function(e){return y.types.compose("LinearBasicDisplay",ot,y.types.model({type:y.types.literal("LinearBasicDisplay"),trackShowLabels:y.types.maybe(y.types.boolean),trackShowDescriptions:y.types.maybe(y.types.boolean),trackDisplayMode:y.types.maybe(y.types.string),trackMaxHeight:y.types.maybe(y.types.number),configuration:r.ConfigurationReference(e)})).views((function(e){return{get rendererTypeName(){return r.getConf(e,["renderer","type"])},get showLabels(){var t=r.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowLabels?e.trackShowLabels:t},get showDescriptions(){var t=r.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowDescriptions?e.trackShowDescriptions:t},get maxHeight(){var t=r.getConf(e,["renderer","maxHeight"]);return void 0!==e.trackMaxHeight?e.trackMaxHeight:t},get displayMode(){var t=r.getConf(e,["renderer","displayMode"]);return void 0!==e.trackDisplayMode?e.trackDisplayMode:t},get rendererConfig(){var t=r.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create(he(he({},t),{},{showLabels:this.showLabels,showDescriptions:this.showDescriptions,displayMode:this.displayMode,maxHeight:this.maxHeight}),y.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(Be(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(){s.getSession(e).queueDialog((function(t){return[Wn,{model:e,handleClose:t}]}))}}])}}}))};function Vn(e){return r.ConfigurationSchema("LinearBasicDisplay",{mouseover:{type:"string",description:"what to display in a given mouseover",defaultValue:"jexl:get(feature,'name')",contextVariable:["feature"]},renderer:e.pluggableConfigSchemaType("renderer"),maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:1e3}},{baseConfiguration:Le,explicitlyTyped:!0})}var Gn=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&xe(e,t)}(m,c);var n,d,f=Pe(m);function m(){var e;return ke(this,m),(e=f.apply(this,arguments)).name="LinearGenomeViewPlugin",e.exports={BaseLinearDisplayComponent:Xe,BaseLinearDisplay:ot,baseLinearDisplayConfigSchema:Le},e}return n=m,(d=[{key:"install",value:function(e){e.addTrackType((function(){var t=r.ConfigurationSchema("FeatureTrack",{},{baseConfiguration:o.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new a({name:"FeatureTrack",configSchema:t,stateModel:o.createBaseTrackModel(e,"FeatureTrack",t)})})),e.addTrackType((function(){var t=r.ConfigurationSchema("BasicTrack",{},{baseConfiguration:o.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new a({name:"BasicTrack",configSchema:t,stateModel:o.createBaseTrackModel(e,"BasicTrack",t)})})),e.addDisplayType((function(){var t=at(e);return new i({name:"LinearBareDisplay",configSchema:t,stateModel:it(t),trackType:"BasicTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addDisplayType((function(){var t=Vn(e);return new i({name:"LinearBasicDisplay",configSchema:t,stateModel:_n(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addViewType((function(){return new l({name:"LinearGenomeView",stateModel:Hn(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return In}))}))})}))}},{key:"configure",value:function(e){s.isAbstractMenuManager(e.rootModel)&&e.rootModel.appendToSubMenu(["Add"],{label:"Linear genome view",icon:u,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,d),Object.defineProperty(n,"prototype",{writable:!1}),m}(),Xn=b.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),Un={__proto__:null,useStyles:Xn,default:function(e){var t=e.handleClose,r=Xn();return n.createElement(b.Dialog,{open:!0,maxWidth:"xl",onClose:t},n.createElement(b.DialogTitle,null,"Using the search box",t?n.createElement(b.IconButton,{"data-testid":"close-resultsDialog",className:r.closeButton,onClick:function(){t()}},n.createElement(Y,null)):null),n.createElement(b.Divider,null),n.createElement(b.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.")),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(b.Divider,null),n.createElement(b.DialogActions,null,n.createElement(b.Button,{onClick:function(){return t()},color:"primary"},"Close")))}},Jn=b.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 Yn(e){var r=e.model,o=e.handleClose,a=Jn(),i=r.maxHeight,l=Te(t.useState("".concat(void 0===i?"":i)),2),c=l[0],s=l[1];return n.createElement(b.Dialog,{open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Filter options",n.createElement(b.IconButton,{"aria-label":"close",className:a.closeButton,onClick:o},n.createElement(Y,null))),n.createElement(b.DialogContent,null,n.createElement("div",{className:a.root},n.createElement(b.Typography,null,"Set max height for the track"),n.createElement(b.TextField,{value:c,onChange:function(e){s(e.target.value)},placeholder:"Enter max score"}),n.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){r.setMaxHeight(""===c||Number.isNaN(+c)?void 0:+c),o()}},"Submit"))))}var Zn={__proto__:null,default:w.observer(Yn)};exports.BaseLinearDisplay=ot,exports.BaseLinearDisplayComponent=Xe,exports.RefNameAutocomplete=jt,exports.baseLinearDisplayConfigSchema=Le,exports.default=Gn,exports.linearBareDisplayConfigSchemaFactory=at,exports.linearBasicDisplayConfigSchemaFactory=Vn,exports.linearBasicDisplayModelFactory=_n,exports.renderToSvg=Mt;
|
|
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"),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")),N=e(require("@jbrowse/core/util/calculateStaticBlocks")),M=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 Ne(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 Ne(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)?Ne(e,t):void 0}}function Ne(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 Me(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=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=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=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}))}He.propTypes={model:b.PropTypes.observableObject.isRequired};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(10),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=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=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],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(),b?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)}},role:"presentation"},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(y.Menu,{open:Boolean(b)&&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:b?{top:b[1],left:b[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=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=Me(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){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){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=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),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 N=[B,P];P=N[0],B=N[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:_n}}),n.createElement("div",{"data-testid":"rubberBand_controls",className:k.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:_n},scaleBarBorder:{border:"1px solid"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:_n},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:_n,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{position:"absolute",height:_n,pointerEvents:"none",zIndex:100,border:"1px solid"},overview:{height:Wn,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],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,Wn],[E+p+m.length*c/2,Wn],[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=b.observer((function(e){var t,r=e.overview,o=e.block,a=e.assembly,i=o.offsetPx,l=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]})),c=!0;return l?n.createElement("g",{transform:"translate(-".concat(i,")")},l.map((function(e,t){var r,o,a,i=Be(e,3),s=i[0],u=i[1],d=i[2],f="".concat(s,"-").concat(u,"-").concat(d);return"acen"===d&&c?(c=!1,n.createElement("polygon",{key:f,points:[[s,0],[u,_n/2],[s,_n]].toString(),fill:wt[d]})):"acen"!==d||c?0===t?n.createElement("path",{key:f,d:(r=Math.min(s,u),o=Math.abs(u-s),a=_n,"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[d]}):t===l.length-1?n.createElement("path",{key:f,d:bt(Math.min(s,u),0,Math.abs(u-s)-2,_n,8),fill:wt[d]}):n.createElement("rect",{key:f,x:Math.min(s,u),y:0,width:Math.abs(u-s),height:_n,fill:wt[d]}):n.createElement("polygon",{key:f,points:[[s,_n/2],[u,0],[u,_n]].toString(),fill:wt[d]})}))):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=[],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=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=M.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:Wn,className:o.overviewSvg},n.createElement(yt,{model:t,overview:s})),r))}var Ct=b.observer(St);function Pt(e){var t,r=e.model,o=e.fontSize,a=r.offsetPx,i=r.dynamicBlocks,l=i.totalWidthPxWithoutBorders,c=(t=i.totalBp,Math.floor(t/1e6)>0?"".concat(parseFloat((t/1e6).toPrecision(3)),"Mbp"):Math.floor(t/1e3)>0?"".concat(parseFloat((t/1e3).toPrecision(3)),"Kbp"):"".concat(Math.floor(t),"bp")),s=Math.max(-a,0),u=s+l;return n.createElement(n.Fragment,null,n.createElement("line",{x1:s,x2:u,y1:10,y2:10,stroke:"black"}),n.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),n.createElement("line",{x1:u,x2:u,y1:5,y2:15,stroke:"black"}),n.createElement("text",{x:s+(u-s)/2,y:2*o,textAnchor:"middle",fontSize:o},c))}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=M.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:_n-1,x:g,y:.5}),n.createElement("g",{transform:"translate(0,".concat(_n,")")},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})))},Nt=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 Mt(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(Nt,{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(Mt,{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 er}))})),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],N=T[1],M=Be(t.useState(""),2),L=M[0],D=M[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&&(N(""),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){N(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:Un,minWidth:"175px"},InputProps:{style:{padding:0,height:Xn,background:f.alpha(a.palette.background.paper,.8)}}}})}var Ht=b.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((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Gt(e){var t=e.model,r=e.handleClose,o=Vt();return n.createElement(f.Dialog,{maxWidth:"xl",open:!0,onClose:r},n.createElement(f.DialogTitle,null,"Reference sequence",r?n.createElement(f.IconButton,{className:o.closeButton,onClick:function(){r()}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,n.createElement(f.Typography,null,"Are you sure you want to return to the import form? This will lose your current view")),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){t.clearView(),r()},variant:"contained",color:"primary",autoFocus:!0},"OK"),n.createElement(f.Button,{onClick:function(){r()},color:"secondary",variant:"contained",autoFocus:!0},"Cancel")))}var Xt=b.observer(Gt),Ut=k.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function Jt(e){var r=e.model,o=Ut(),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 Yt=b.observer(Jt),Zt=f.makeStyles((function(e){return{headerBar:{height:Wn,display:"flex"},headerForm:{flexWrap:"nowrap",marginRight:7},spacer:{flexGrow:1},panButton:{background:f.alpha(e.palette.background.paper,.8),height:Xn,margin:Un},bp:{display:"flex",alignItems:"center",marginLeft:5},toggleButton:{height:44,border:"none",margin:e.spacing(.5)},buttonSpacer:{marginRight:e.spacing(2)}}})),Kt=b.observer((function(e){var t=e.model,r=Zt();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 Qt(e){var t=e.model,r=Zt();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 $t=b.observer((function(e){var t=e.model,r=Zt();return n.createElement(f.Typography,{variant:"body2",color:"textSecondary",className:r.bp},Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp")})),en=function(e){var t=e.model,r=Zt();return n.createElement("div",{className:r.headerBar},n.createElement(Kt,{model:t}),n.createElement("div",{className:r.spacer}),n.createElement(f.FormGroup,{row:!0,className:r.headerForm},n.createElement(Qt,{model:t}),n.createElement(Ht,{model:t})),n.createElement($t,{model:t}),n.createElement(Yt,{model:t}),n.createElement("div",{className:r.spacer}))},tn=b.observer((function(e){var t=e.model;return t.hideHeaderOverview?n.createElement(en,{model:t}):n.createElement(Ct,{model:t},n.createElement(en,{model:t}))})),nn=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)}}})),rn=b.observer(n.forwardRef((function(e,t){var r,a=nn(),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 w=s.trackMenuItems();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},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:!w.length},n.createElement(ne,null))),n.createElement(y.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:[].concat(Te(null===(r=p.getTrackActionMenuItems)||void 0===r?void 0:r.call(p,g)),Te(w)).sort((function(e,t){return(t.priority||0)-(e.priority||0)}))}))}))),on=k.makeStyles((function(e){return{root:{},resizeHandle:{height:Gn,boxSizing:"border-box",position:"relative",zIndex:2},overlay:{pointerEvents:"none",position:"absolute",top:0,left:0,width:"100%",zIndex:3,borderRadius:e.shape.borderRadius},renderingComponentContainer:{position:"absolute",left:-1,height:"100%",width:"100%"},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,boxSizing:"content-box"}}}));function an(e){var r=on(),a=e.model,i=e.track,l=i.displays[0],c=a.horizontalScroll,s=a.draggingTrackId,d=a.moveTrack,f=l.height,m=u.getContainingView(l),p=o.getConf(i,"trackId"),g=t.useRef(null);t.useEffect((function(){return g.current&&(a.trackRefs[p]=g.current),function(){delete a.trackRefs[p]}}),[a.trackRefs,p]);var v=u.useDebouncedCallback((function(){void 0!==s&&h.isAlive(l)&&s!==l.id&&d(s,i.id)}),100),b=l.RenderingComponent,w=l.DisplayBlurb,k=void 0!==s&&s!==l.id;return n.createElement("div",{className:r.root},"hidden"!==m.trackLabels?n.createElement(rn,{track:i,className:_(r.trackLabel,"overlapping"===m.trackLabels?r.trackLabelOverlap:r.trackLabelInline)}):null,n.createElement(te,{variant:"outlined",className:r.trackRenderingContainer,style:{height:f},onScroll:function(e){l.setScrollTop(e.target.scrollTop)},onDragEnter:v,"data-testid":"trackRenderingContainer-".concat(m.id,"-").concat(p),role:"presentation"},n.createElement("div",{ref:g,className:r.renderingComponentContainer,style:{transform:"scaleX(".concat(a.scaleFactor,")")}},n.createElement(b,{model:l,blockState:{},onHorizontalScroll:c})),w?n.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}}," ",n.createElement(w,{model:l})):null),n.createElement("div",{className:r.overlay,style:{height:l.height,background:k?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:v}),n.createElement(y.ResizeHandle,{onDrag:l.resizeHeight,className:r.resizeHandle}))}var ln=b.observer(an),cn=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}}})),sn=b.observer((function(e){var t=e.model,r=e.coordX,o=cn();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 un(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],w=t.useRef(null),k=t.useRef(null),E=cn(),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 N(){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),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&&N()}),[x,d,l,r.bpPerPx]);var M=Boolean(p);if(void 0===l)return n.createElement(n.Fragment,null,void 0!==v?n.createElement(sn,{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(y.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:p.clientX,top:p.clientY},onMenuItemClick:function(e,t){t(),N()},open:M,onClose:N,menuItems:r.rubberBandMenuItems()}):null)}un.propTypes={model:b.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},un.defaultProps={ControlComponent:n.createElement("div",null)};var dn=b.observer(un),fn=["model","style","className"],mn=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}}})),pn=b.observer((function(e){var t=e.model,r=mn(),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})))})),gn=b.observer((function(e){var t=e.model,r=mn();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})))})),hn=b.observer(n.forwardRef((function(e,t){var r=e.model,o=e.style,a=e.className,i=Se(e,fn),l=mn(),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(gn,{model:r}))),n.createElement(pn,{model:r}))}))),vn=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}}})),yn=b.observer((function(e){var t=e.model,r=vn();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 bn(e){var t=e.model,r=vn(),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(yn,{model:t})))}var wn=b.observer(bn),kn=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 En(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=kn();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}En.propTypes={model:b.PropTypes.objectOrObservableObject.isRequired};var xn=b.observer(En),Sn=k.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:Gn}}}));function Cn(e){var r=e.children,o=e.model,a=Sn(),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(wn,{model:o}),o.showCenterLine?n.createElement(xn,{model:o}):null,n.createElement(dn,{model:o,ControlComponent:n.createElement(hn,{model:o,style:{height:Vn,boxSizing:"border-box"}})}),n.createElement("div",{className:a.spacer}),r)}var Pn=b.observer(Cn),Bn=t.lazy((function(){return Promise.resolve().then((function(){return jn}))})),Tn=f.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),Rn=b.observer((function(e){var r,o=e.model,a=Tn(),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 N(e,t){return M.apply(this,arguments)}function M(){return(M=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,N(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:N,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(Bn,{model:o,optAssemblyName:h,handleClose:function(){return o.setSearchResults(void 0,void 0)}}):null)})),Nn=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(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()}))})),Mn=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 Ln(e,t,n){return Dn.apply(this,arguments)}function Dn(){return(Dn=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 In(e){var r=e.model,o=e.handleClose,a=Mn(),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,Ln(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 On=b.observer(In),Fn=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 zn(e){var t,r,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=Fn(),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 jn={__proto__:null,useStyles:Fn,default:zn},qn=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:'"..."'}}}})),An={__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=qn();return i||o?!l||o?n.createElement(Rn,{model:t}):n.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?n.createElement(On,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?n.createElement(zn,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?n.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},n.createElement(Nn,{model:t})):n.createElement(tn,{model:t}),n.createElement(Pn,{model:t},r.length?r.map((function(e){return n.createElement(ln,{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 Hn(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 Wn=48,_n=20,Vn=17,Gn=3,Xn=32,Un=7;function Jn(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 localStorage.getItem("lgv-trackLabels")||"overlapping"})),showCenterLine:h.types.optional(h.types.boolean,(function(){var e=localStorage.getItem("lgv-showCenterLine");return void 0!==e&&!!e})),showCytobandsSetting:h.types.optional(h.types.boolean,(function(){var e=localStorage.getItem("lgv-showCytobands");return void 0===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 Vn+Gn},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?Wn:Wn+_n},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*Gn},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=u.getSession(e).assemblyManager,o=r.isValidRefName,a=t.split(";");if(e.displayedRegions.length>1){var i=a.map((function(e){return u.parseLocString(e,o)}));this.navToMultiple(i)}else{var l=n,c="";0!==e.displayedRegions.length&&(l=e.displayedRegions[0].assemblyName,c=e.displayedRegions[0].refName);var s=l&&r.get(l);if(!s)throw new Error("Could not find assembly ".concat(l));var d=s.regions;if(!d)throw new Error("Regions for assembly ".concat(l," not yet loaded"));if(a.length>1)throw new Error("Navigating to multiple locations is not allowed when viewing a whole chromosome");var f=u.parseLocString(a[0],(function(e){return o(e,l)})),m=!1;if(f.assemblyName&&f.assemblyName!==l){var p=r.get(f.assemblyName);if(!p)throw new Error("Could not find assembly ".concat(f.assemblyName));s=p,m=!0;var g=p.regions;if(!g)throw new Error("Regions for assembly ".concat(f.assemblyName," not yet loaded"));d=g}var h=s.getCanonicalRefName(f.refName);if(!h)throw new Error("Could not find refName ".concat(f.refName," in ").concat(s.name));if(m||h!==c){var v=d.find((function(e){return e.refName===h}));if(!v)throw new Error("Could not find refName ".concat(f.refName," in ").concat(s.name));this.setDisplayedRegions([v])}var y=d.find((function(e){return e.refName===h}));if(y){var b,w,k=u.clamp(null!==(b=null==f?void 0:f.start)&&void 0!==b?b:0,0,y.end),E=u.clamp(null!==(w=null==f?void 0:f.end)&&void 0!==w?w:y.end,0,y.end);this.navTo(he(he({},f),{},{start:k,end:E}))}}},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"));if(b>0&&!(x.reversed?k===x.end:w===x.start))throw new Error("".concat(x.reversed?"End":"Start"," of region ").concat(u.assembleLocString(E)," should be ").concat((x.reversed?x.end:x.start+1).toLocaleString("en-US"),", but it is not"));if(b!==t.length-1&&!(x.reversed?w===x.start:k===x.end))throw new Error("".concat(x.reversed?"Start":"End"," of region ").concat(u.assembleLocString(E)," should be ").concat((x.reversed?x.start+1:x.end).toLocaleString("en-US"),", but it is not"))}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=M.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){var t,n="";return{menuItems:function(){var t,n=e.showCytobands,r=[{label:"Return to import form",onClick:function(){u.getSession(e).queueDialog((function(t){return[Xt,{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=Me(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},get staticBlocks(){var r=N(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 Hn(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return Hn(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 Yn=t.lazy((function(){return Promise.resolve().then((function(){return rr}))})),Zn=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[Yn,{model:e,handleClose:t}]}))}}])}}}))};function Kn(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 Qn=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=Kn(e);return new l({name:"LinearBasicDisplay",configSchema:t,stateModel:Zn(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addViewType((function(){return new c({name:"LinearGenomeView",stateModel:Jn(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return An}))}))})})),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}(),$n=f.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),er={__proto__:null,useStyles:$n,default:function(e){var t=e.handleClose,r=$n();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.")),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(f.Divider,null),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){return t()},color:"primary"},"Close")))}},tr=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 nr(e){var r=e.model,o=e.handleClose,a=tr(),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 rr={__proto__:null,default:b.observer(nr)};exports.BaseLinearDisplay=at,exports.BaseLinearDisplayComponent=Xe,exports.RefNameAutocomplete=jt,exports.SearchBox=Ht,exports.baseLinearDisplayConfigSchema=Ie,exports.default=Qn,exports.linearBareDisplayConfigSchemaFactory=it,exports.linearBasicDisplayConfigSchemaFactory=Kn,exports.linearBasicDisplayModelFactory=Zn,exports.renderToSvg=Lt;
|
|
2
2
|
//# sourceMappingURL=plugin-linear-genome-view.cjs.production.min.js.map
|