@jbrowse/plugin-linear-genome-view 1.4.4 → 1.5.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.
Files changed (30) hide show
  1. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +16 -9
  2. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +2 -2
  3. package/dist/LinearBareDisplay/model.d.ts +8 -8
  4. package/dist/LinearBasicDisplay/model.d.ts +11 -8
  5. package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +0 -10
  6. package/dist/LinearGenomeView/components/ScaleBar.d.ts +22 -2
  7. package/dist/LinearGenomeView/components/util.d.ts +2 -0
  8. package/dist/LinearGenomeView/index.d.ts +13 -2
  9. package/dist/index.d.ts +26 -26
  10. package/dist/plugin-linear-genome-view.cjs.development.js +272 -268
  11. package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
  12. package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
  13. package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
  14. package/dist/plugin-linear-genome-view.esm.js +272 -269
  15. package/dist/plugin-linear-genome-view.esm.js.map +1 -1
  16. package/package.json +2 -2
  17. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +3 -0
  18. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +3 -7
  19. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +15 -13
  20. package/src/LinearBasicDisplay/model.ts +25 -3
  21. package/src/LinearGenomeView/components/ExportSvgDialog.tsx +6 -6
  22. package/src/LinearGenomeView/components/Header.tsx +40 -74
  23. package/src/LinearGenomeView/components/ImportForm.tsx +124 -134
  24. package/src/LinearGenomeView/components/LinearGenomeView.test.js +6 -6
  25. package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +20 -25
  26. package/src/LinearGenomeView/components/SequenceDialog.tsx +1 -1
  27. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +0 -176
  28. package/src/LinearGenomeView/components/util.ts +8 -0
  29. package/src/LinearGenomeView/index.tsx +14 -13
  30. package/src/index.ts +3 -1
@@ -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"),r=e(t),n=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"),x=require("react-popper"),E=require("@material-ui/core/styles"),S=require("@jbrowse/core/util/blockTypes"),C=require("@jbrowse/core/util/types/mst"),P=e(require("@material-ui/icons/Refresh")),T=require("@jbrowse/core/configuration/configurationSchema"),B=e(require("@jbrowse/core/util/calculateDynamicBlocks")),R=e(require("@jbrowse/core/util/calculateStaticBlocks")),N=e(require("@jbrowse/core/util/Base1DViewModel")),M=require("@jbrowse/core/ui/Icons"),L=e(require("@material-ui/icons/SyncAlt")),I=e(require("@material-ui/icons/Visibility")),D=e(require("@material-ui/icons/Label")),O=e(require("@material-ui/icons/FolderOpen")),F=e(require("@material-ui/icons/PhotoCamera")),j=e(require("@material-ui/icons/ZoomIn")),z=e(require("clone")),q=require("file-saver"),A=require("react-dom/server"),H=e(require("@material-ui/core/FormGroup")),W=e(require("@material-ui/icons/ArrowForward")),V=e(require("@material-ui/icons/ArrowBack")),_=require("@jbrowse/core/TextSearch/BaseResults"),G=e(_),X=e(require("@material-ui/icons/Search")),U=e(require("@material-ui/lab/Autocomplete")),Y=e(require("@material-ui/core/LinearProgress")),J=e(require("clsx")),Z=e(require("prop-types")),K=e(require("@material-ui/core/IconButton")),Q=e(require("@material-ui/core/Slider")),$=e(require("@material-ui/icons/ZoomOut")),ee=e(require("@material-ui/core/Paper")),te=e(require("@material-ui/icons/MoreVert")),re=e(require("@material-ui/icons/DragIndicator")),ne=e(require("@material-ui/icons/Close")),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("@material-ui/icons/KeyboardArrowDown")),ue=e(require("@jbrowse/core/ui/Menu")),de=e(require("copy-to-clipboard")),fe=e(require("@material-ui/icons/GetApp")),me=require("@jbrowse/core/util/formatFastaStrings");function pe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ge(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(r),!0).forEach((function(t){ke(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pe(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function he(e){return(he="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 ve(e,t,r,n,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void r(e)}l.done?t(c):Promise.resolve(c).then(n,o)}function ye(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){ve(a,n,o,i,l,"next",e)}function l(e){ve(a,n,o,i,l,"throw",e)}i(void 0)}))}}function be(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ke(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function we(e){return(we=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 Ee(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Se(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ce(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 r,n=we(e);if(t){var o=we(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return Se(this,r)}}function Pe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw o}}return a}}(e,t)||Be(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 Re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Be(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 Be(e,t){if(e){if("string"==typeof e)return Re(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Re(e,t):void 0}}function Re(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ne(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Be(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}var Me=n.ConfigurationSchema("BaseLinearDisplay",{maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:Number.MAX_VALUE}},{explicitIdentifier:"displayId"});function Le(e,t){return e(t={exports:{}},t.exports),t.exports}var Ie=Le((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var o=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new E(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var l=k(i,r);if(l){if(l===u)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,a),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var u={};function d(){}function f(){}function m(){}var p={};p[o]=function(){return this};var g=Object.getPrototypeOf,h=g&&g(g(S([])));h&&h!==t&&r.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 n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(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&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function k(e,t){var r=e.iterator[t.method];if(void 0===r){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 n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var o=n.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 x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(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 n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],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=v.constructor=m,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),b.prototype[a]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new b(c(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},y(v),l(v,i,"Generator"),v[o]=function(){return this},v.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=S,E.prototype={constructor:E,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(x),!e)for(var t in this)"t"===t.charAt(0)&&r.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 n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.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 r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),De=E.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}}})),Oe=w.observer((function(e){var t=e.block,n=e.children,o=De();return r.createElement("div",{style:{width:"".concat(t.widthPx,"px")},className:o.contentBlock},n)}));function Fe(e){var t=e.width,n=De();return r.createElement("div",{className:n.elidedBlock,style:{width:"".concat(t,"px")}})}function je(e){var t=e.boundary,n=e.width,o=e.style,a=void 0===o?{}:o,i=De();return r.createElement("div",{style:ge(ge({},a),{},{width:"".concat(n,"px")}),className:t?i.boundaryPaddingBlock:i.interRegionPaddingBlock})}var ze=E.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"}}),qe=w.observer((function(e){var t=e.model,n=ze(),o=t.blockState;return r.createElement(r.Fragment,null,t.blockDefinitions.map((function(e){if(e instanceof S.ContentBlock){var a=o.get(e.key);return r.createElement(Oe,{block:e,key:"".concat(t.id,"-").concat(e.key)},a&&a.ReactComponent?r.createElement(a.ReactComponent,{model:a}):null,a&&a.maxHeightReached?r.createElement("div",{className:n.heightOverflowed,style:{top:a.layout.getTotalHeight()-16,pointerEvents:"none",height:16}},"Max height reached"):null)}if(e instanceof S.ElidedBlock)return r.createElement(Fe,{key:"".concat(t.id,"-").concat(e.key),width:e.widthPx});if(e instanceof S.InterRegionPaddingBlock)return r.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant});throw new Error("invalid block type ".concat(he(e)))})))}));function Ae(e){var t=e.model,n=ze(),o=t.blockDefinitions,a=s.getContainingView(t);return r.createElement("div",{"data-testid":"Blockset",className:n.linearBlocks,style:{left:o.offsetPx-a.offsetPx}},r.createElement(qe,{model:t}))}Ae.propTypes={model:w.PropTypes.observableObject.isRequired};var He=w.observer(Ae),We=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",fontWeight:e.typography.fontWeightMedium}}})),Ve=r.forwardRef((function(e,t){return r.createElement("div",{ref:t},e.message)})),_e=w.observer((function(e){var o=e.model,a=e.clientMouseCoord,i=We(),l=o.featureUnderMouse,c=Pe(t.useState(0),2),s=c[0],u=c[1],d=Pe(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}}}}),[a,s]),g=x.usePopper(p,f),h=g.styles,v=g.attributes,y=l?n.getConf(o,"mouseover",{feature:l}):void 0;return l&&y?r.createElement(b.Portal,null,r.createElement("div",Object.assign({ref:m,className:i.tooltip,style:ge(ge({},h.popper),{},{zIndex:1e5})},v.popper),r.createElement(Ve,{ref:function(e){return u((null==e?void 0:e.getBoundingClientRect().width)||0)},message:y}))):null})),Ge=w.observer((function(e){var o=We(),a=b.useTheme(),i=t.useRef(null),l=Pe(t.useState(),2),c=l[0],s=l[1],u=Pe(t.useState([0,0]),2),d=u[0],f=u[1],m=Pe(t.useState([0,0]),2),p=m[0],g=m[1],h=Pe(t.useState(),2),v=h[0],y=h[1],w=e.model,x=e.children,E=w.TooltipComponent,S=w.DisplayMessageComponent,C=w.contextMenuItems,P=w.height,T=w.setContextMenuFeature;return r.createElement("div",{ref:i,"data-testid":"display-".concat(n.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?r.createElement(S,{model:w}):r.createElement(He,Object.assign({},e)),x,r.createElement(E,{model:w,height:P,offsetMouseCoord:d,clientMouseCoord:p,clientRect:c,mouseCoord:d}),r.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"}))})),Xe=E.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 Ue(e){var t=e.children;return r.createElement("div",{style:{display:"flex"}},t,t)}var Ye=w.observer((function(e){var n=e.model,o=Pe(t.useState(!1),2),a=o[0],i=o[1],l=Xe();t.useEffect((function(){var e=!1,t=setTimeout((function(){e||i(!0)}),300);return function(){clearTimeout(t),e=!0}}),[]);var c=n.status,s=y.getParent(n,2).message||c;return r.createElement(r.Fragment,null,a?r.createElement("div",{className:l.loading},r.createElement(g,{className:l.dots,variant:"body2"},s?"".concat(s):"Loading")):null)}));function Je(e){var t=e.messageContent,n=Xe();return r.isValidElement(t)?r.createElement("div",{className:n.blockReactNodeMessage},t):r.createElement(g,{variant:"body2",className:n.blockMessage},t)}function Ze(e){var t=e.error,n=e.reload,o=e.displayHeight,a=Xe();return r.createElement("div",{className:a.blockError,style:{height:o}},n?r.createElement(p,{"data-testid":"reload_button",onClick:n,startIcon:r.createElement(P,null)},"Reload"):null,r.createElement(g,{color:"error",variant:"body2",display:"inline"},"".concat(t)))}var Ke=w.observer((function(e){var t=e.model;return t.error?r.createElement(Ue,null,r.createElement(Ze,{error:t.error,reload:t.reload,displayHeight:m.getParentRenderProps(t).displayModel.height})):t.message?r.createElement(Ue,null,r.createElement(Je,{messageContent:t.message})):t.filled?t.reactElement:r.createElement(Ue,null,r.createElement(Ye,{model:t}))})),Qe=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:Ke,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,$e,et,{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(r){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=r},setMessage:function(r){t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=r,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(r){if(r){var n=r.reactElement,o=r.features,a=r.layout,i=r.maxHeightReached,l=r.renderProps;e.filled=!0,e.message=void 0,e.reactElement=n,e.features=o,e.layout=a,e.error=void 0,e.maxHeightReached=i,e.renderProps=l,t=void 0}},setError:function(r){console.error(r),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=r,e.renderProps=void 0,t=void 0},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=Ke,e.renderProps=void 0,y.getParent(e,2).reload()},beforeDestroy:function(){t&&!t.signal.aborted&&t.abort();var r=s.getContainingDisplay(e),n=s.getSession(e).rpcManager,o=r.rendererType,a=$e(y.cast(e)).renderArgs;a&&o.freeResourcesInClient(n,JSON.parse(JSON.stringify(a))).catch((function(e){console.warn("Error while destroying block",e)}))}}}));function $e(e,t){try{var r=t||s.getContainingDisplay(e),o=s.getSession(r),a=o.assemblyManager,i=o.rpcManager,l=r.adapterConfig,c=r.rendererType,u=r.error,d=m.getTrackAssemblyNames(r.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=r.renderProps();n.readConfObject(p.config);var g=m.getRpcSessionId(r);return{rendererType:c,rpcManager:i,renderProps:p,cannotBeRenderedReason:r.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 et(e,t,r){return tt.apply(this,arguments)}function tt(){return(tt=ye(Ie.mark((function e(t,r,n){var o,a,i,l,c,s,u;return Ie.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(n)){e.next=3;break}return e.abrupt("return",void 0);case 3:if(!s){e.next=6;break}return n.setError(s),e.abrupt("return",void 0);case 6:if(!c){e.next=9;break}return n.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,ge(ge(ge({},l),a),{},{signal:r}));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"],nt=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(Qe),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,r=s.getContainingView(e);if(!r.initialized)throw new Error("view not initialized yet");return r[t]}}})).views((function(e){return{get maxViewBpPerPx(){return e.userBpPerPxLimit||n.getConf(e,"maxDisplayedBpPerPx")},get renderDelay(){return 50},get TooltipComponent(){return _e},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,r=[],n=Ne(e.blockState.values());try{for(n.s();!(t=n.n()).done;){var o=t.value;o&&o.features&&r.push(o.features)}}catch(e){n.e(e)}finally{n.f()}return new d(r)},get featureUnderMouse(){return e.featureIdUnderMouse?this.features.get(e.featureIdUnderMouse):void 0},getFeatureOverlapping:function(t,r,n){var o,a;return null===(o=e.blockState.get(t))||void 0===o||null===(a=o.layout)||void 0===a?void 0:a.getByCoord(r,n)},getFeatureByID:function(t,r){var n,o;return null===(n=e.blockState.get(t))||void 0===n||null===(o=n.layout)||void 0===o?void 0:o.getByID(r)},searchFeatureByID:function(t){var r;return e.blockState.forEach((function(e){var n,o=null==e||null===(n=e.layout)||void 0===n?void 0:n.getByID(t);o&&(r=o)})),r}}})).actions((function(e){return{afterAttach:function(){var t=this,r=v.autorun((function(){var r={};s.getContainingView(e).initialized&&(e.blockDefinitions.contentBlocks.forEach((function(n){r[n.key]=!0,e.blockState.has(n.key)||t.addBlock(n.key,n)})),e.blockState.forEach((function(e,n){r[n]||t.deleteBlock(n)})))}));y.addDisposer(e,r)},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r},setScrollTop:function(t){e.scrollTop=t},setUserBpPerPxLimit:function(t){e.userBpPerPxLimit=t},setMessage:function(t){e.message=t},addBlock:function(t,r){e.blockState.set(t,Qe.create({key:t,region:r.toRegion()}))},deleteBlock:function(t){e.blockState.delete(t)},selectFeature:function(t){var r=s.getSession(e);if(s.isSessionModelWithWidgets(r)){var n=r.addWidget("BaseFeatureWidget","baseFeature",{featureData:t.toJSON(),view:s.getContainingView(e)});r.showWidget(n)}s.isSelectionContainer(r)&&r.setSelection(t)},clearFeatureSelection:function(){s.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{regionCannotBeRenderedText:function(t){var r=s.getContainingView(e);return r&&r.bpPerPx>e.maxViewBpPerPx?"Zoom in to see features":""},regionCannotBeRendered:function(t){var n=s.getContainingView(e);if(n&&n.bpPerPx>e.maxViewBpPerPx)return r.createElement(r.Fragment,null,r.createElement(g,{component:"span",variant:"body2"},"Zoom in to see features or"," "),r.createElement(p,{"data-testid":"reload_button",onClick:function(){e.setUserBpPerPxLimit(n.bpPerPx),e.reload()},variant:"outlined"},"Force Load"),r.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 ge(ge({},m.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,displayModel:e,onFeatureClick:function(t,r){var n=r||e.featureIdUnderMouse;if(n){var o=e.features.get(n);e.selectFeature(o)}else e.clearFeatureSelection()},onClick:function(){e.clearFeatureSelection()},onFeatureContextMenu:function(t,r){var n=r||e.featureIdUnderMouse;n?e.setContextMenuFeature(e.features.get(n)):e.clearFeatureSelection()},onMouseMove:function(t,r){e.setFeatureIdUnderMouse(r)},onMouseLeave:function(t){e.setFeatureIdUnderMouse(void 0)},onContextMenu:function(){e.setContextMenuFeature(void 0),e.clearFeatureSelection()}})}}})).actions((function(e){return{renderSvg:function(t){return ye(Ie.mark((function n(){var o,a,i,l,c,u,d;return Ie.wrap((function(n){for(;;)switch(n.prev=n.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,n.next=6,Promise.all(u.map((function(n){var o=Qe.create({key:n.key,region:n}),a=e.regionCannotBeRenderedText(n)||e.regionCannotBeRendered(n);if(a)return{reactElement:r.createElement(r.Fragment,null,r.createElement("rect",{x:0,y:0,width:d,height:20,fill:"#aaa"}),r.createElement("text",{x:0,y:15},a))};var i=$e(o,e),l=i.renderProps;return i.rendererType.renderInClient(i.rpcManager,ge(ge(ge({},i.renderArgs),l),{},{exportSVG:t}))})));case 6:return n.abrupt("return",r.createElement(r.Fragment,null,n.sent.map((function(e,t){var n=u[t].offsetPx-c,l="clip-".concat("undefined"==typeof jest?a:"jest","-").concat(t);return r.createElement(r.Fragment,{key:"frag-".concat(t)},r.createElement("defs",null,r.createElement("clipPath",{id:l},r.createElement("rect",{x:0,y:0,width:d,height:i||o}))),r.createElement("g",{transform:"translate(".concat(n," 0)")},r.createElement("g",{clipPath:"url(#".concat(l,")")},r.isValidElement(e.reactElement)?e.reactElement:r.createElement("g",{dangerouslySetInnerHTML:{__html:e.html}}))))}))));case 8:case"end":return n.stop()}}),n)})))()}}})).postProcessSnapshot((function(e){return Ee(e,rt)}));function ot(e){return n.ConfigurationSchema("LinearBareDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Me,explicitlyTyped:!0})}function at(e){return y.types.compose("LinearBareDisplay",nt,y.types.model({type:y.types.literal("LinearBareDisplay"),configuration:T.ConfigurationReference(e)})).views((function(e){var t=e.renderProps;return{renderProps:function(){return ge(ge(ge({},t()),m.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,config:e.configuration.renderer})},get rendererTypeName(){return e.configuration.renderer.type}}}))}function it(e,t,r){return lt.apply(this,arguments)}function lt(){return(lt=ye(Ie.mark((function e(t,r,n){var o,a,i,l;return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=s.getSession(t),a=o.textSearchManager,i=t.rankSearchResults,l=t.searchScope(n),e.abrupt("return",null==a?void 0:a.search({queryString:r,searchType:"prefix"},l,i).then((function(e){return e.filter((function(e,t,r){return t===r.findIndex((function(t){return t.label===e.label}))}))})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ct=function(e){var t=e.style;return r.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 st(e){var n=e.model,o=e.onSelect,a=e.assemblyName,i=e.style,l=e.value,c=e.TextFieldProps,u=void 0===c?{}:c,d=s.getSession(n),f=d.assemblyManager,m=Pe(t.useState(!1),2),p=m[0],g=m[1],h=Pe(t.useState(!0),2),v=h[0],y=h[1],k=Pe(t.useState(""),2),w=k[0],x=k[1],E=Pe(t.useState([]),2),S=E[0],C=E[1],P=s.useDebounce(w,300),T=n.coarseVisibleLocStrings,B=n.hasDisplayedRegions,R=a?f.get(a):void 0,N=(null==R?void 0:R.regions)||[],M=t.useMemo((function(){return N.map((function(e){return{result:new _.RefSequenceResult({refName:e.refName,label:e.refName,matchedAttribute:"refName"})}}))}),[N]);t.useEffect((function(){var e=!0;return ye(Ie.mark((function t(){var r;return Ie.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,""!==P&&a){t.next=3;break}return t.abrupt("return");case 3:return y(!1),t.next=6,it(n,P,a);case 6:(r=t.sent)&&r.length>=0&&e&&C(r.map((function(e){return{result:e}}))),y(!0),t.next=15;break;case 11:t.prev=11,t.t0=t.catch(0),console.error(t.t0),e&&d.notify("".concat(t.t0),"error");case 15:case"end":return t.stop()}}),t,null,[[0,11]])})))(),function(){e=!1}}),[a,P,d,n]);var L=T||l||"",I=Math.min(Math.max(s.measureText(L,16)+25,200),550);return r.createElement(U,{id:"refNameAutocomplete-".concat(n.id),"data-testid":"autocomplete",disableListWrap:!0,disableClearable:!0,PopperComponent:ct,disabled:!a,freeSolo:!0,includeInputInList:!0,selectOnFocus:!0,blurOnSelect:!0,style:ge(ge({},i),{},{width:I}),value:L,loading:!v,loadingText:"loading results",open:p,onOpen:function(){return g(!0)},onClose:function(){g(!1),y(!0),B&&(x(""),C([]))},onChange:function(e,t){if(t&&a)if("string"==typeof t){var r=new G({label:t});o(r)}else o(t.result)},options:0===S.length?M:S,getOptionDisabled:function(e){return"limitOption"===(null==e?void 0:e.group)},filterOptions:function(e,t){var r=function(e,t){return e.filter((function(e){var r=e.result;return r.getLabel().toLowerCase().includes(t)||r.matchedObject}))}(e,t.inputValue.toLocaleLowerCase());return[].concat(Te(r.slice(0,100)),Te(r.length>100?[{group:"limitOption",result:new G({label:"keep typing for more results"})}]:[]))},renderInput:function(e){var t=u.InputProps,n=void 0===t?{}:t;return r.createElement(b.TextField,Object.assign({},e,u,{helperText:u.helperText,InputProps:ge(ge(ge({},e.InputProps),n),{},{endAdornment:r.createElement(r.Fragment,null,0===N.length?r.createElement(b.CircularProgress,{color:"inherit",size:20}):r.createElement(b.InputAdornment,{position:"end",style:{marginRight:7}},r.createElement(X,null)),e.InputProps.endAdornment)}),placeholder:"Search for location",onChange:function(e){x(e.target.value)}}))},renderOption:function(e){var t=e.result,n=t.getRenderingComponent();return n&&r.isValidElement(n)?n:r.createElement(b.Typography,{noWrap:!0},t.getDisplayString())},getOptionLabel:function(e){return("string"==typeof e?e:e.result.getLabel())||""}})}var ut=w.observer(st);function dt(e,t,r){for(var n=t*(e=Math.abs(e)),o=parseInt(Number(n).toExponential().split(/e/i)[1],10),a=Math.pow(10,o);a<n&&!((a*=2)>=n);)a*=2.5;var i=(a=Math.max(a,5))/e,l=0;return!(a%10)&&i/10>=r?l=a/10:!(a%5)&&i/5>=r?l=a/5:!(a%2)&&i/2>=r&&(l=a/2),{majorPitch:a,minorPitch:l}}function ft(e,t,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=dt(r,60,15),i=e,l=t;if(null===i||null===l)return[];if(r<0){var c=[l,i];i=c[0],l=c[1]}i-=Math.abs(20*r)-1,l+=Math.abs(20*r)+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):!n||f%(2*a.majorPitch)||(d.push({type:"major",base:f-1,index:u}),u+=1);return d}var mt=E.makeStyles((function(e){return{rubberBand:{height:"100%",background:E.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}}}));function pt(e){var n=e.model,o=e.overview,a=e.ControlComponent,i=void 0===a?r.createElement("div",null):a,l=Pe(t.useState(),2),c=l[0],u=l[1],d=Pe(t.useState(),2),f=d[0],m=d[1],p=Pe(t.useState(),2),g=p[0],h=p[1],v=t.useRef(null),y=t.useRef(null),k=mt(),w=void 0!==c;function x(e){e.preventDefault(),e.stopPropagation(),v.current&&u(e.clientX-v.current.getBoundingClientRect().left)}function E(e){v.current&&h(e.clientX-v.current.getBoundingClientRect().left)}function S(){h(void 0)}if(t.useEffect((function(){function e(e){if(v.current&&w){var t=e.clientX-v.current.getBoundingClientRect().left;m(t)}}function t(){if(v.current&&void 0!==c&&void 0!==f&&Math.abs(f-c)>3&&n.zoomToDisplayedRegions(o.pxToBp(c),o.pxToBp(f)),v.current&&void 0!==c&&void 0===f){var e=o.pxToBp(c);n.centerAt(Math.round(e.coord),e.refName,e.index)}u(void 0),m(void 0),void 0!==c&&h(void 0)}function r(e){"Escape"===e.key&&(u(void 0),m(void 0))}return w?(window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0),window.addEventListener("keydown",r,!0),function(){window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),window.removeEventListener("keydown",r,!0)}):function(){}}),[w,f,c,n,o]),void 0===c)return r.createElement("div",{style:{position:"relative"}},void 0!==g?r.createElement(b.Tooltip,{open:!w,placement:"top",title:s.stringify(o.pxToBp(g)),arrow:!0},r.createElement("div",{className:k.guide,style:{left:g}})):null,r.createElement("div",{className:k.rubberBandControl,role:"presentation",ref:v,onMouseDown:x,onMouseOut:S,onMouseMove:E},i));var C,P,T=c||0,B=0;if(void 0!==c&&void 0!==f&&(T=f<c?f:c,B=f-c),c&&(C=o.pxToBp(c),P=o.pxToBp(c+B),f&&f<c)){var R=[P,C];C=R[0],P=R[1]}return r.createElement("div",{style:{position:"relative"}},y.current?r.createElement(r.Fragment,null,r.createElement(b.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:y.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(b.Typography,null,C?s.stringify(C):"")),r.createElement(b.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:y.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(b.Typography,null,P?s.stringify(P):""))):null,r.createElement("div",{ref:y,className:k.rubberBand,style:{left:T,width:Math.abs(B),height:Nr}}),r.createElement("div",{"data-testid":"rubberBand_controls",className:k.rubberBandControl,role:"presentation",ref:v,onMouseDown:x,onMouseOut:S,onMouseMove:E},i))}pt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,overview:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:Z.node},pt.defaultProps={ControlComponent:r.createElement("div",null)};var gt=w.observer(pt),ht=E.makeStyles((function(e){var t=e.palette.tertiary?e.palette.tertiary.light:e.palette.primary.light;return{scaleBar:{width:"100%",height:Nr,overflow:"hidden"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:Nr,border:"1px solid",borderBottomColor:"black"},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"},scaleBarRegionIncompleteLeft:{width:10,height:17.5,background:"linear-gradient(-225deg,black 3px, transparent 1px),\n linear-gradient(45deg, black 3px, transparent 1px)",backgroundRepeat:"repeat-y",backgroundSize:"10px 8px",borderTopLeftRadius:"2px",borderBottomLeftRadius:"2px",float:"left"},scaleBarRegionIncompleteRight:{width:10,height:17.5,background:"linear-gradient(225deg, black 3px, transparent 1px),\n linear-gradient(-45deg, black 3px, transparent 1px)",backgroundRepeat:"repeat-y",backgroundSize:"10px 8px",borderTopRightRadius:"2px",borderBottomRightRadius:"2px",float:"right"},scaleBarRefName:{position:"absolute",fontWeight:"bold",lineHeight:"normal",pointerEvents:"none",left:5},scaleBarLabel:{height:Nr,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{background:E.alpha(t,.3),position:"absolute",height:Nr,pointerEvents:"none",top:-1,zIndex:100,borderWidth:1,borderStyle:"solid",borderColor:E.alpha(t,.8),boxSizing:"content-box"},overview:{height:Rr,position:"relative"},overviewSvg:{position:"absolute"}}})),vt=w.observer((function(e){var t=e.model,n=e.overview,o=E.useTheme(),a=ht(),i=t.offsetPx,l=t.dynamicBlocks,c=l.contentBlocks,s=l.totalWidthPxWithoutBorders,u=o.palette.tertiary?o.palette.tertiary.light:o.palette.primary.light;if(!c.length)return null;var d=c[0],f=c[c.length-1],m=n.bpToPx({refName:d.refName,coord:d.reversed?d.end:d.start,regionNumber:d.regionNumber}),p=n.bpToPx({refName:f.refName,coord:f.reversed?f.start:f.end,regionNumber:f.regionNumber}),g=Math.max(0,-i),h=[[g,Rr],[g+s+c.length*t.interRegionPaddingWidth/2,Rr],[p,0],[m,0]];return r.createElement("svg",{height:Rr,width:"100%",className:a.overviewSvg},h&&r.createElement("polygon",{points:h.toString(),fill:E.alpha(u,.3),stroke:E.alpha(u,.8)}))})),yt=w.observer((function(e){var t=e.model,n=e.scale,o=e.overview,a=ht(),i=t.dynamicBlocks,l=s.getSession(t).assemblyManager,c=dt(n,120,15),u=o.dynamicBlocks;if(!i.contentBlocks.length)return null;var d=i.contentBlocks[0],f=o.bpToPx({refName:d.refName,regionNumber:d.regionNumber,coord:d.reversed?d.end:d.start})||0,m=i.contentBlocks[i.contentBlocks.length-1],p=o.bpToPx({refName:m.refName,coord:m.reversed?m.start:m.end,regionNumber:m.regionNumber})||0;return r.createElement("div",{className:a.scaleBar},r.createElement("div",{className:a.scaleBarVisibleRegion,style:{width:p-f,left:f}}),u.map((function(e,t){var o,i=l.get(e.assemblyName);i&&(o=i.getRefNameColor(e.refName));for(var s=e.end-e.start,u=[],d=0;d<Math.floor(s/c.majorPitch);d++){var f=(d+1)*c.majorPitch;u.push(e.reversed?e.end-f:e.start+f)}return e instanceof S.ContentBlock?r.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(t),className:J(a.scaleBarContig,e.reversed?a.scaleBarContigReverse:a.scaleBarContigForward),style:{left:e.offsetPx,width:e.widthPx,borderColor:o}},r.createElement(b.Typography,{style:{color:o,zIndex:100},className:a.scaleBarRefName},e.refName),u.map((function(t,i){return r.createElement(b.Typography,{key:"".concat(JSON.stringify(e),"-").concat(t,"-").concat(i),className:a.scaleBarLabel,variant:"body2",style:{left:(i+1)*c.majorPitch/n,pointerEvents:"none",color:o}},t.toLocaleString("en-US"))}))):r.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(t),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 bt(e){var t=e.model,n=e.children,o=ht(),a=t.width,i=t.displayedRegions,l=N.create({displayedRegions:JSON.parse(JSON.stringify(i)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth});return l.setVolatileWidth(a),l.showAllRegions(),i.length?r.createElement("div",null,r.createElement(gt,{model:t,overview:l,ControlComponent:r.createElement(yt,{model:t,overview:l,scale:t.totalBp/(a-2*(i.length-1))})}),r.createElement("div",{className:o.overview},r.createElement(vt,{model:t,overview:l}),n)):r.createElement(r.Fragment,null,r.createElement("div",{className:o.scaleBar},r.createElement(Y,{variant:"indeterminate",style:{marginTop:4,width:"100%"}})),r.createElement("div",null,n))}var kt=w.observer(bt),wt=E.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function xt(e){var n=e.model,o=wt(),a=n.maxBpPerPx,i=n.minBpPerPx,l=n.bpPerPx,c=n.scaleFactor,s=Pe(t.useState(100*-Math.log2(l)),2),u=s[0],d=s[1];return t.useEffect((function(){d(100*-Math.log2(l))}),[d,l]),r.createElement("div",{className:o.container},r.createElement(K,{"data-testid":"zoom_out",onClick:function(){n.zoom(2*l)},disabled:l>=a-1e-4||1!==c,color:"secondary"},r.createElement($,null)),r.createElement(Q,{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 n.zoomTo(Math.pow(2,-u/100))},disabled:1!==c}),r.createElement(K,{"data-testid":"zoom_in",onClick:function(){n.zoom(n.bpPerPx/2)},disabled:l<=i+1e-4||1!==c,color:"secondary"},r.createElement(j,null)))}var Et=w.observer(xt),St=E.makeStyles((function(e){return{headerBar:{height:Rr,display:"flex"},headerForm:{flexWrap:"nowrap",marginRight:7},spacer:{flexGrow:1},input:{},headerRefName:{minWidth:100},panButton:{background:E.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)}}})),Ct=w.observer((function(e){var t=e.model,n=St();return r.createElement(p,{onClick:t.activateTrackSelector,className:n.toggleButton,title:"Open track selector",value:"track_select",color:"secondary"},r.createElement(M.TrackSelector,{className:n.buttonSpacer}))}));function Pt(e){var t=e.model,n=St();return r.createElement(r.Fragment,null,r.createElement(p,{variant:"outlined",className:n.panButton,onClick:function(){return t.slide(-.9)}},r.createElement(V,null)),r.createElement(p,{variant:"outlined",className:n.panButton,onClick:function(){return t.slide(.9)}},r.createElement(W,null)))}var Tt=w.observer((function(e){var t=e.model,n=St();return r.createElement(g,{variant:"body2",color:"textSecondary",className:n.bp},"".concat(Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp"))})),Bt=w.observer((function(e){var t=e.model,n=St(),o=E.useTheme(),a=s.getSession(t),i=a.textSearchManager,l=t.displayedRegions,c=t.rankSearchResults,u=t.coarseDynamicBlocks[0]||{refName:""},d=u.assemblyName,f=u.refName,m=d?a.assemblyManager.get(d):void 0,p=(null==m?void 0:m.regions)||[],g=t.searchScope(d);function h(e){return v.apply(this,arguments)}function v(){return(v=ye(Ie.mark((function e(t){var r;return Ie.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.toLowerCase(),searchType:"exact"},g,c);case 3:return e.abrupt("return",null==(r=e.sent)?void 0:r.filter((function(e,t,r){return t===r.findIndex((function(t){return t.getId()===e.getId()}))})));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function y(){return(y=ye(Ie.mark((function e(r){var n,o,i,l,c;return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r){e.next=14;break}if(n=r.getLabel(),!(o=p.find((function(e){return n===e.refName})))){e.next=8;break}t.setDisplayedRegions([o]),t.showAllRegions(),e.next=14;break;case 8:return i=r.getLocation(),l=r.getTrackId(),e.next=12,h(n);case 12:if((c=e.sent)&&c.length>1)t.setSearchResults(c,n.toLowerCase());else{1===(null==c?void 0:c.length)&&(i=c[0].getLocation(),l=c[0].getTrackId());try{""!==n&&t.navToLocString(i)}catch(e){"".concat(e)==='Error: Unknown reference sequence "'.concat(n,'"')?t.setSearchResults(c,n.toLowerCase()):(console.warn(e),a.notify("".concat(e),"warning"))}try{l&&t.showTrack(l)}catch(e){console.warn("'".concat(e,"' occurred while attempting to show track: ").concat(l))}}case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var b=r.createElement("div",{className:n.headerBar},r.createElement(Ct,{model:t}),r.createElement("div",{className:n.spacer}),r.createElement(H,{row:!0,className:n.headerForm},r.createElement(Pt,{model:t}),r.createElement(ut,{onSelect:function(e){return y.apply(this,arguments)},assemblyName:d,value:l.length>1?"":f,model:t,TextFieldProps:{variant:"outlined",className:n.headerRefName,style:{margin:7,minWidth:"175px"},InputProps:{style:{padding:0,height:32,background:E.alpha(o.palette.background.paper,.8)}}}})),r.createElement(Tt,{model:t}),r.createElement(Et,{model:t}),r.createElement("div",{className:n.spacer}));return t.hideHeaderOverview?b:r.createElement(kt,{model:t},b)})),Rt=E.makeStyles((function(e){return{root:{background:E.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)}}})),Nt=w.observer(r.forwardRef((function(e,t){var o,a=Rt(),i=Pe(r.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=n.getConf(u,"trackId"),v=function(){c(null)},y=n.getConf(u,"name");"ReferenceSequenceTrack"===n.getConf(u,"type")&&(y="Reference Sequence",m.assemblies.forEach((function(e){e.sequence===p&&(y="Reference Sequence (".concat(n.readConfObject(e,"name"),")"))})));var b=u.trackMenuItems();return r.createElement(r.Fragment,null,r.createElement(ee,{ref:t,className:J(d,a.root)},r.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)},r.createElement(re,{className:a.dragHandleIcon})),r.createElement(K,{onClick:function(){return f.hideTrack(h)},className:a.iconButton,title:"close this track",color:"secondary"},r.createElement(ne,null)),r.createElement(g,{variant:"body1",component:"span",className:a.trackName},y),r.createElement(K,{"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},r.createElement(te,null))),r.createElement(k.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:[].concat(Te(null===(o=m.getTrackActionMenuItems)||void 0===o?void 0:o.call(m,p)),Te(b)).sort((function(e,t){return(t.priority||0)-(e.priority||0)}))}))}))),Mt=E.makeStyles((function(e){return{root:{},resizeHandle:{height:Lr,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 Lt(e){var o=Mt(),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=n.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 r.createElement("div",{className:o.root},"hidden"!==m.trackLabels?r.createElement(Nt,{track:i,className:J(o.trackLabel,"overlapping"===m.trackLabels?o.trackLabelOverlap:o.trackLabelInline)}):null,r.createElement(ee,{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"},r.createElement("div",{ref:g,className:o.renderingComponentContainer,style:{transform:"scaleX(".concat(a.scaleFactor,")")}},r.createElement(v,{model:l,blockState:{},onHorizontalScroll:c})),b?r.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}}," ",r.createElement(b,{model:l})):null),r.createElement("div",{className:o.overlay,style:{height:l.height,background:w?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:h}),r.createElement(k.ResizeHandle,{onDrag:l.resizeHeight,className:o.resizeHandle}))}var It=w.observer(Lt),Dt=E.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}}})),Ot=w.observer((function(e){var t=e.model,n=e.coordX,o=Dt();return r.createElement(le,{open:!0,placement:"top",title:s.stringify(t.pxToBp(n)),arrow:!0},r.createElement("div",{className:o.guide,style:{left:n,background:"red"}}))}));function Ft(e){var n=e.model,o=e.ControlComponent,a=void 0===o?r.createElement("div",null):o,i=Pe(t.useState(),2),l=i[0],c=i[1],u=Pe(t.useState(),2),d=u[0],f=u[1],m=Pe(t.useState(),2),p=m[0],h=m[1],v=Pe(t.useState(),2),y=v[0],b=v[1],w=t.useRef(null),x=t.useRef(null),E=Dt(),S=void 0!==l&&void 0===p,C=n.setOffsets,P=n.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),n.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,r=e.clientY,n=t-w.current.getBoundingClientRect().left;h({offsetX:n,clientX:t,clientY:r});var o=function(e){if(void 0!==l){var t=l,r=e;if(r<t){var n=[r,t];t=n[0],r=n[1]}return{leftOffset:P(t),rightOffset:P(r)}}}(n);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,n.bpPerPx]);var M=Boolean(p);if(void 0===l)return r.createElement(r.Fragment,null,void 0!==y?r.createElement(Ot,{model:n,coordX:y}):null,r.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a));var L=p?p.offsetX:d||0,I=L<l?L:l,D=Math.abs(L-l),O=n.pxToBp(I),F=n.pxToBp(I+D),j=Math.ceil(D*n.bpPerPx);return r.createElement(r.Fragment,null,x.current?r.createElement(r.Fragment,null,r.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:x.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(g,null,s.stringify(O))),r.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:x.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(g,null,s.stringify(F)))):null,r.createElement("div",{ref:x,className:E.rubberBand,style:{left:I,width:D}},r.createElement(g,{variant:"h6",className:E.rubberBandText},j.toLocaleString("en-US")," bp")),r.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a),p?r.createElement(k.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:p.clientX,top:p.clientY},onMenuItemClick:function(e,t){t(),N()},open:M,onClose:N,menuItems:n.rubberBandMenuItems()}):null)}Ft.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:Z.node},Ft.defaultProps={ControlComponent:r.createElement("div",null)};var jt=w.observer(Ft),zt=["model","style","className"],qt=E.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}}})),At=w.observer((function(e){var t=e.model,n=qt(),o=0;return t.staticBlocks.forEach((function(e,r){e.offsetPx-t.offsetPx<0&&(o=r)})),r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,a){return e instanceof S.ContentBlock&&(e.isLeftEndOfDisplayedRegion||a===o)?r.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:n.refLabel,"data-testid":"refLabel-".concat(e.refName)},e.refName):null})))})),Ht=w.observer((function(e){var t=e.model,n=qt();return r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ft(e.start,e.end,t.bpPerPx,!0,!1);return r.createElement(Oe,{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 r.createElement("div",{key:o.base,className:n.tick,style:{left:a}},i?r.createElement(g,{className:n.majorTickLabel},i):null)}return null})))}return e instanceof S.ElidedBlock?r.createElement(Fe,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?r.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant}):null})))})),Wt=w.observer(r.forwardRef((function(e,t){var n=e.model,o=e.style,a=e.className,i=Ee(e,zt),l=qt(),c=n.staticBlocks.offsetPx-n.offsetPx;return r.createElement(ee,Object.assign({"data-resizer":"true",className:J(l.scaleBarContainer,a),variant:"outlined",ref:t,style:o},i),r.createElement("div",{className:l.scaleBarZoomContainer,style:{transform:1!==n.scaleFactor?"scaleX(".concat(n.scaleFactor,")"):void 0}},r.createElement("div",{className:l.scaleBar,style:ge({left:c-1,width:n.staticBlocks.totalWidthPx},o)},r.createElement(Ht,{model:n}))),r.createElement(At,{model:n}))}))),Vt=E.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}}})),_t=w.observer((function(e){var t=e.model,n=Vt();return r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ft(e.start,e.end,t.bpPerPx);return r.createElement(Oe,{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 r.createElement("div",{key:o.base,className:J(n.tick,"major"===o.type||"labeledMajor"===o.type?n.majorTick:n.minorTick),style:{left:a}})})))}return e instanceof S.ElidedBlock?r.createElement(Fe,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?r.createElement(je,{key:e.key,width:e.widthPx,boundary:"boundary"===e.variant}):null})))}));function Gt(e){var t=e.model,n=Vt(),o=t.staticBlocks.offsetPx-t.offsetPx;return r.createElement("div",{className:n.verticalGuidesZoomContainer,style:{transform:1!==t.scaleFactor?"scaleX(".concat(t.scaleFactor,")"):void 0}},r.createElement("div",{className:n.verticalGuidesContainer,style:{left:o,width:t.staticBlocks.totalWidthPx}},r.createElement(_t,{model:t})))}var Xt=w.observer(Gt),Ut=E.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 Yt(e){var n=e.model,o=n.bpPerPx,a=n.centerLineInfo,i=n.trackHeights,l=n.tracks,c=n.width,s=t.useRef(null),u=Ut();return l.length?r.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&&r.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}Yt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired};var Jt=w.observer(Yt),Zt=E.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:Lr}}}));function Kt(e){var n=e.children,o=e.model,a=Zt(),i=t.useRef(0),l=t.useRef(!1),c=t.useRef(),s=t.useRef(null),u=t.useRef(0),d=Pe(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 r(){u.current=0,f&&m(!1)}return f&&(window.addEventListener("mousemove",t,!0),window.addEventListener("mouseup",r,!0),e=function(){window.removeEventListener("mousemove",t,!0),window.removeEventListener("mouseup",r,!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]),r.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()}},r.createElement(Xt,{model:o}),o.showCenterLine?r.createElement(Jt,{model:o}):null,r.createElement(jt,{model:o,ControlComponent:r.createElement(Wt,{model:o,style:{height:Mr,boxSizing:"border-box"}})}),r.createElement("div",{className:a.spacer}),n)}var Qt=w.observer(Kt),$t=E.makeStyles((function(e){return{dialogContent:{width:"80em"},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function er(e){var t,n,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=$t(),c=s.getSession(o),u=y.getEnv(c).pluginManager,d=c.assemblyManager,f=a;if(o.displayedRegions.length>0&&(f=null===(n=o.displayedRegions[0])||void 0===n?void 0:n.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){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")}}function h(e){if(e){var t,r=u.pluggableConfigSchemaType("track"),n=y.resolveIdentifier(r,y.getRoot(o),e);if(n)return null===(t=n.name)||void 0===t?void 0:t.value}return""}return r.createElement(b.Dialog,{open:!0,maxWidth:"xl",onClose:i},r.createElement(b.DialogTitle,{id:"search-results-dialog"},"Search Results",i?r.createElement(b.IconButton,{"data-testid":"close-resultsDialog",className:l.closeButton,onClick:function(){i()}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,0===(null===(t=o.searchResults)||void 0===t?void 0:t.length)||void 0===o.searchResults?r.createElement(b.Typography,null,"No results found for ",r.createElement("b",null,o.searchQuery)):r.createElement(r.Fragment,null,r.createElement(b.DialogContentText,{id:"alert-dialog-slide-description"},"Showing results for ",r.createElement("b",null,o.searchQuery)),r.createElement(b.TableContainer,{component:b.Paper},r.createElement(b.Table,null,r.createElement(b.TableHead,null,r.createElement(b.TableRow,null,r.createElement(b.TableCell,null,"Name"),r.createElement(b.TableCell,{align:"right"},"Location"),r.createElement(b.TableCell,{align:"right"},"Track"),r.createElement(b.TableCell,{align:"right"}))),r.createElement(b.TableBody,null,o.searchResults.map((function(e,t){return r.createElement(b.TableRow,{key:"".concat(e.getLabel(),"-").concat(t)},r.createElement(b.TableCell,{component:"th",scope:"row"},e.getLabel()),r.createElement(b.TableCell,{align:"right"},e.getLocation()),r.createElement(b.TableCell,{align:"right"},h(e.getTrackId())||"N/A"),r.createElement(b.TableCell,{align:"right"},r.createElement(b.Button,{onClick:function(){g(e.getLocation()),i()},color:"primary",variant:"contained"},"Go to location")),r.createElement(b.TableCell,{align:"right"},r.createElement(b.Button,{onClick:function(){g(e.getLocation());var t=e.getTrackId();t&&o.showTrack(t),i()},disabled:!h(e.getTrackId()),color:"primary",variant:"contained"},"Show Track")))}))))))),r.createElement(b.Divider,null),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){i()},color:"primary"},"Cancel")))}var tr=b.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),rr=w.observer((function(e){return r.createElement(b.Typography,{variant:"h6",color:"error"},"".concat(e.error))})),nr=w.observer((function(e){var n,o=e.model,a=tr(),i=s.getSession(o),l=i.assemblyNames,c=i.assemblyManager,u=i.textSearchManager,d=o.rankSearchResults,f=o.isSearchDialogDisplayed,m=o.error,p=Pe(t.useState(l[0]),2),g=p[0],h=p[1],v=Pe(t.useState(m),2),y=v[0],k=v[1],w=l.length?"":"No configured assemblies",x=o.searchScope(g),E=c.get(g),S=(null==E?void 0:E.regions)||[],C=(l.length?null==E?void 0:E.error:"No configured assemblies")||y,P=Pe(t.useState(),2),T=P[0],B=P[1],R=Pe(t.useState(),2),N=R[0],M=R[1],L=Pe(t.useState(),2),I=L[0],D=L[1],O=T||(null===(n=S[0])||void 0===n?void 0:n.refName);function F(e){return j.apply(this,arguments)}function j(){return(j=ye(Ie.mark((function e(t){var r;return Ie.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.toLowerCase(),searchType:"exact"},x,d);case 3:return e.abrupt("return",null==(r=e.sent)?void 0:r.filter((function(e,t,r){return t===r.findIndex((function(t){return t.getId()===e.getId()}))})));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function z(e){return q.apply(this,arguments)}function q(){return(q=ye(Ie.mark((function e(t){var r,n,a,l;return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=N,n=I,!(a=S.find((function(e){return O===e.refName})))){e.next=8;break}o.setDisplayedRegions([a]),o.showAllRegions(),e.next=12;break;case 8:return e.next=10,F(t);case 10:if((l=e.sent)&&l.length>1)o.setSearchResults(l,t.toLowerCase());else{1===(null==l?void 0:l.length)&&(n=l[0].getLocation(),r=l[0].getTrackId());try{n&&o.navToLocString(n,g)}catch(e){"".concat(e)==='Error: Unknown reference sequence "'.concat(t,'"')?o.setSearchResults(l,t.toLocaleLowerCase()):(console.warn(e),i.notify("".concat(e),"warning"))}try{r&&o.showTrack(r)}catch(e){console.warn("'".concat(e,"' occurred while attempting to show track: ").concat(r))}}case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return r.createElement("div",null,C?r.createElement(rr,{error:C}):null,r.createElement(b.Container,{className:a.importFormContainer},r.createElement(b.Grid,{container:!0,spacing:1,justifyContent:"center",alignItems:"center"},r.createElement(b.Grid,{item:!0},r.createElement(ce,{onChange:function(e){k(void 0),h(e)},session:i,selected:g})),r.createElement(b.Grid,{item:!0},g?C?r.createElement(b.Typography,{color:"error"},"X"):O&&o.volatileWidth?r.createElement(ut,{model:o,assemblyName:w?void 0:g,value:O,onSelect:function(e){B(e.getLabel()),M(e.getTrackId()||""),D(e.getLocation())},TextFieldProps:{margin:"normal",variant:"outlined",helperText:"Enter a sequence or location",onBlur:function(e){B(""!==e.target.value?e.target.value:S[0].refName)},onKeyPress:function(e){"Enter"===e.key&&z(e.target.value)}}}):r.createElement(b.CircularProgress,{role:"progressbar",size:20,disableShrink:!0}):null),r.createElement(b.Grid,{item:!0},r.createElement(b.Button,{disabled:!O,className:a.button,onClick:function(){o.setError(void 0),O&&z(O)},variant:"contained",color:"primary"},"Open"),r.createElement(b.Button,{disabled:!O,className:a.button,onClick:function(){o.setError(void 0),o.showAllRegionsInAssembly(g)},variant:"contained",color:"secondary"},"Show all regions in assembly")))),f?r.createElement(er,{model:o,optAssemblyName:g,handleClose:function(){o.setSearchResults(void 0,void 0)}}):null)})),or=w.observer((function(e){var n=e.model,o=n.bpPerPx,a=n.maxBpPerPx,i=n.minBpPerPx,l=n.scaleFactor,c=Pe(t.useState(),2),s=c[0],u=c[1];return r.createElement(r.Fragment,null,r.createElement(ee,{style:{background:"#aaa7"}},r.createElement(K,{color:"secondary",onClick:function(e){u(e.currentTarget)}},r.createElement(se,null)),r.createElement(K,{"data-testid":"zoom_out",onClick:function(){n.zoom(2*o)},disabled:o>=a-1e-4||1!==l,color:"secondary"},r.createElement($,null)),r.createElement(K,{"data-testid":"zoom_in",onClick:function(){n.zoom(n.bpPerPx/2)},disabled:o<=i+1e-4||1!==l,color:"secondary"},r.createElement(j,null))),r.createElement(ue,{anchorEl:s,open:Boolean(s),onMenuItemClick:function(e,t){t(),u(void 0)},onClose:function(){u(void 0)},menuItems:n.menuItems()}))})),ar=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 ir(e,t,r){return lr.apply(this,arguments)}function lr(){return(lr=ye(Ie.mark((function e(t,r,o){var a,i,l,c,u,d,f;return Ie.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=n.readConfObject(d.configuration,["sequence","adapter"]),e.next=15,Promise.all(r.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 cr(e){var n=e.model,o=e.handleClose,a=ar(),i=s.getSession(n),l=Pe(t.useState(),2),c=l[0],u=l[1],d=Pe(t.useState(),2),f=d[0],m=d[1],p=Boolean(void 0===f),g=n.leftOffset,h=n.rightOffset,v=t.useMemo((function(){return n.getSelectedRegions(g,h)}),[n,g,h]);t.useEffect((function(){var e=!0,t=new AbortController;return ye(Ie.mark((function r(){var o;return Ie.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(r.prev=0,!(v.length>0)){r.next=8;break}return r.next=4,ir(n,v,t.signal);case 4:o=r.sent,e&&m(me.formatSeqFasta(o.filter((function(e){return!!e})).map((function(e){var t=e.get("seq"),r=e.get("refName"),n=e.get("start")+1,o=e.get("end"),a="".concat(r,":").concat(n,"-").concat(o);if((null==t?void 0:t.length)!==o-n+1)throw new Error("".concat(a," returned ").concat(t.length.toLocaleString()," bases, but should have returned ").concat((o-n).toLocaleString()));return{header:a,seq:t}})))),r.next=9;break;case 8:throw new Error("Selected region is out of bounds");case 9:r.next=15;break;case 11:r.prev=11,r.t0=r.catch(0),console.error(r.t0),e&&u(r.t0);case 15:case"end":return r.stop()}}),r,null,[[0,11]])})))(),function(){t.abort(),e=!1}}),[n,i,v,m]);var y=!!f&&f.length>1e6;return r.createElement(b.Dialog,{"data-testid":"sequence-dialog",maxWidth:"xl",open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Reference sequence",o?r.createElement(b.IconButton,{"data-testid":"close-seqDialog",className:a.closeButton,onClick:function(){o(),n.setOffsets(void 0,void 0)}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,c?r.createElement(b.Typography,{color:"error"},"".concat(c)):null,p&&!c?r.createElement(b.Container,null,"Retrieving reference sequence...",r.createElement(b.CircularProgress,{style:{marginLeft:10},size:20,disableShrink:!0})):null,r.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}}})),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){de(f||""),i.notify("Copied to clipboard","success")},disabled:p||!!c||y,color:"primary",startIcon:r.createElement(M.ContentCopy,null)},"Copy to clipboard"),r.createElement(b.Button,{onClick:function(){var e=new Blob([f||""],{type:"text/x-fasta;charset=utf-8"});q.saveAs(e,"jbrowse_ref_seq.fa")},disabled:p||!!c,color:"primary",startIcon:r.createElement(fe,null)},"Download FASTA"),r.createElement(b.Button,{onClick:o,color:"primary",autoFocus:!0},"Close")))}var sr=w.observer(cr),ur=E.makeStyles((function(){return{majorTickLabel:{fontSize:"11px"},majorTick:{stroke:"#555"},minorTick:{stroke:"#999"}}}));function dr(e){var t=e.start,n=e.end,o=e.bpPerPx,a=e.reversed,i=e.major,l=e.minor,c=ur(),s=ft(t,n,o,i,l);return r.createElement(r.Fragment,null,s.map((function(e){var i=(a?n-e.base:e.base-t)/o;return r.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 r.createElement("text",{x:(a?n-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))})))}dr.propTypes={start:Z.number.isRequired,end:Z.number.isRequired,bpPerPx:Z.number.isRequired,reversed:Z.bool,major:Z.bool,minor:Z.bool},dr.defaultProps={reversed:!1,major:!0,minor:!0};var fr=w.observer(dr),mr=b.makeStyles((function(e){return{errorMessage:{textAlign:"center",paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},spacer:{marginRight:e.spacing(2)}}}));function pr(e){var t,n=e.model,o=e.fontSize,a=n.offsetPx,i=n.dynamicBlocks,l=i.totalWidthPxWithoutBorders,c=i.totalBp;t=Math.floor(c/1e6)>0?"".concat(parseFloat((c/1e6).toPrecision(3)),"Mbp"):Math.floor(c/1e3)>0?"".concat(parseFloat((c/1e3).toPrecision(3)),"Kbp"):"".concat(Math.floor(c),"bp");var s=Math.max(-a,0),u=s+l;return r.createElement(r.Fragment,null,r.createElement("line",{x1:s,x2:u,y1:10,y2:10,stroke:"black"}),r.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),r.createElement("line",{x1:u,x2:u,y1:5,y2:15,stroke:"black"}),r.createElement("text",{x:s+(u-s)/2,y:2*o,textAnchor:"middle",fontSize:o},t))}function gr(e){var t=e.model,n=e.fontSize,o=t.dynamicBlocks.contentBlocks,a=t.offsetPx,i=t.bpPerPx,l=o.length<5;return r.createElement(r.Fragment,null,r.createElement("defs",null,r.createElement("clipPath",{id:"clip-ruler"},r.createElement("rect",{x:0,y:0,width:e.width,height:20}))),o.map((function(e){var t=e.offsetPx-a;return r.createElement("g",{key:"".concat(e.key),transform:"translate(".concat(t," 0)")},r.createElement("text",{x:t/i,y:n,fontSize:n},e.refName),l?r.createElement("g",{transform:"translate(0 20)",clipPath:"url(#clip-ruler)"},r.createElement(fr,{start:e.start,end:e.end,bpPerPx:i,reversed:e.reversed})):r.createElement("line",{strokeWidth:1,stroke:"black",x1:e.start/i,x2:e.end/i,y1:20,y2:20}))})))}var hr=function(e){return e.reduce((function(e,t){return e+t.displays[0].height+20+20}),0)},vr=function(e){var t=e.model,n=t.width,o=t.assemblyNames;return r.createElement("g",{id:"header"},r.createElement("text",{x:0,y:15,fontSize:15},o.length>1?"":o[0]),r.createElement("g",{transform:"translate(0 ".concat(15,")")},r.createElement(pr,{model:t,fontSize:15})),r.createElement("g",{transform:"translate(0 ".concat(50,")")},r.createElement(gr,{model:t,fontSize:15,width:n})))},yr=function(e){var t=e.model,n=t.dynamicBlocks,o=hr(t.tracks);return r.createElement(r.Fragment,null,n.contentBlocks.slice(1).map((function(e){return r.createElement("line",{key:e.key,x1:e.offsetPx-t.offsetPx,x2:e.offsetPx-t.offsetPx,y1:110,y2:o,stroke:"black",strokeOpacity:.3})})))};function br(e){var t=e.model,o=e.offset;return r.createElement(r.Fragment,null,e.displayResults.map((function(e){var a=e.track,i=e.result,l=o,c=n.getConf(a,"name")||"Reference sequence (".concat(n.readConfObject(y.getParent(a.configuration),"name"),")");return o+=a.displays[0].height+20+20,r.createElement("g",{key:a.configuration.trackId,transform:"translate(0 ".concat(l,")")},r.createElement("text",{fontSize:15,x:Math.max(-t.offsetPx,0)},c),r.createElement("g",{transform:"translate(0 ".concat(20,")")},i))})))}function kr(e,t){return wr.apply(this,arguments)}function wr(){return(wr=ye(Ie.mark((function e(t,n){var o,a,i,l,c,s;return Ie.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=110,c=hr(a=t.tracks)+l,e.next=8,Promise.all(a.map(function(){var e=ye(Ie.mark((function e(t){var r;return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.displays[0],e.next=3,v.when((function(){return void 0===r.ready||r.ready}));case 3:return e.next=5,r.renderSvg(n);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",A.renderToStaticMarkup(r.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()},r.createElement("rect",{width:o+2*i,height:c,fill:"white"}),r.createElement("g",{stroke:"none",transform:"translate(".concat(i," ").concat(15,")")},r.createElement(vr,{model:t}),r.createElement(br,{model:t,displayResults:s,offset:l}),r.createElement(yr,{model:t})))));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var xr={__proto__:null,default:w.observer((function(e){var t=e.model,n=t.tracks,o=t.error,a=t.hideHeader,i=t.initialized,l=t.hasDisplayedRegions,c=mr();return i||o?!l||o?r.createElement(nr,{model:t}):r.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?r.createElement(sr,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?r.createElement(er,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?r.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},r.createElement(or,{model:t})):r.createElement(Bt,{model:t}),r.createElement(Qt,{model:t},n.length?n.map((function(e){return r.createElement(It,{key:e.id,model:t,track:e})})):r.createElement(b.Paper,{variant:"outlined",className:c.errorMessage},r.createElement(b.Typography,null,"No tracks active."),r.createElement(b.Button,{variant:"contained",color:"primary",onClick:t.activateTrackSelector,style:{zIndex:1e3}},r.createElement(M.TrackSelector,{className:c.spacer}),"Open track selector")))):null})),renderToSvg:kr},Er=E.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Sr(e){var n,o=e.model,a=e.handleClose,i=Pe(t.useState("undefined"!=typeof OffscreenCanvas),2),l=i[0],c=i[1],s=Pe(t.useState(!1),2),u=s[0],d=s[1],f=Pe(t.useState(),2),m=f[0],p=f[1],g=Er();return r.createElement(b.Dialog,{open:!0,onClose:a},r.createElement(b.DialogTitle,null,"Export SVG",r.createElement(b.IconButton,{className:g.closeButton,onClick:a},r.createElement(ne,null))),r.createElement(b.DialogContent,null,m?r.createElement("div",{style:{color:"red"}},"".concat(m)):u?r.createElement("div",null,r.createElement(b.CircularProgress,{size:20,style:{marginRight:20}}),r.createElement(b.Typography,{display:"inline"},"Creating SVG")):null,"undefined"!=typeof OffscreenCanvas?r.createElement(b.FormControlLabel,{control:r.createElement(b.Checkbox,{checked:l,onChange:function(){return c((function(e){return!e}))}}),label:"Rasterize canvas based tracks? File may be much larger if this is turned off"}):r.createElement(b.Typography,null,"Note: rasterizing layers not yet supported in this browser, so SVG size may be large")),r.createElement(b.DialogActions,null,r.createElement(b.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),r.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",onClick:(n=ye(Ie.mark((function e(){return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d(!0),p(void 0),e.prev=2,e.next=5,o.exportSvg({rasterizeLayers:l});case 5:a(),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(2),p(e.t0);case 11:return e.prev=11,d(!1),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])}))),function(){return n.apply(this,arguments)})},"Submit")))}var Cr=E.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Pr(e){var t=e.model,n=e.handleClose,o=Cr();return r.createElement(b.Dialog,{maxWidth:"xl",open:!0,onClose:n},r.createElement(b.DialogTitle,null,"Reference sequence",n?r.createElement(b.IconButton,{className:o.closeButton,onClick:function(){n()}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,r.createElement(b.Typography,null,"Are you sure you want to return to the import form? This will lose your current view")),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){t.clearView(),n()},variant:"contained",color:"primary",autoFocus:!0},"OK"),r.createElement(b.Button,{onClick:function(){n()},color:"secondary",variant:"contained",autoFocus:!0},"Cancel")))}var Tr=w.observer(Pr);function Br(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(ge(ge({},e),{},{start:Math.round(e.start),end:Math.round(e.end),assemblyName:t?void 0:e.assemblyName}))})).join(";")}var Rr=48,Nr=20,Mr=17,Lr=3;function Ir(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})).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 r;return null===(r=t.get(e))||void 0===r?void 0:r.error})).filter((function(e){return!!e})).join(", ")},get assembliesInitialized(){var t=s.getSession(e).assemblyManager;return this.assemblyNames.every((function(e){var r;return null===(r=t.get(e))||void 0===r?void 0:r.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 Mr+Lr},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?Rr:Rr+Nr},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*Lr},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 ge(ge({},m.getParentRenderProps(e)),{},{bpPerPx:e.bpPerPx,highResolutionScaling:n.getConf(s.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){var r=t.refName,n=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 r===t.refName&&n>=t.start&&n<=t.end&&(!o||o===c)?(a+=t.reversed?t.end-n:n-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 r=0,n=(e.offsetPx+t)*e.bpPerPx,o=e.displayedRegions.length;if(n<0){var a=e.displayedRegions[0],i=n;return ge(ge({},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=n-r;if(d+r>n&&r<=n)return ge(ge({},y.getSnapshot(u)),{},{oob:!1,offset:f,coord:u.reversed?Math.floor(u.end-f)+1:Math.floor(u.start+f)+1,index:s});r+=u.end-u.start>c&&f/e.bpPerPx>0&&f/e.bpPerPx<e.width?d+l:d}if(n>=r){var m=e.displayedRegions[o-1],p=n-r+(m.end-m.start);return ge(ge({},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 r=e.tracks.map((function(e){return e.configuration.trackId}));return t.forEach((function(e){r!==[]&&r.includes(e.trackId)&&e.updateScore(e.getScore()+1)})),t},rewriteOnClicks:function(t,r){var n=this;r.forEach((function(r){if("subMenu"in r&&n.rewriteOnClicks(t,r.subMenu),"onClick"in r){var o=r.onClick;r.onClick=function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];e.tracks.forEach((function(e){e.type===t&&o.apply(e,[e].concat(n))}))}}}))},get trackTypeActions(){var t=this,r=new Map;return e.tracks.forEach((function(e){if(!r.get(e.type)){var n=z(e.viewMenuActions);t.rewriteOnClicks(e.type,n),r.set(e.type,n)}})),r},get centerLineInfo(){return e.displayedRegions.length?this.pxToBp(e.width/2):void 0}}})).actions((function(t){return{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 r=s.clamp(e,t.minOffset,t.maxOffset);return t.offsetPx=r,r},zoomTo:function(e){var r=s.clamp(e,t.minBpPerPx,t.maxBpPerPx);if(r===t.bpPerPx)return r;var n=t.bpPerPx;if(t.bpPerPx=r,Math.abs(n-r)<1e-6)return console.warn("zoomTo bpPerPx rounding error"),n;var o=t.width;return this.scrollTo(Math.round((t.offsetPx+o/2)*n/r-o/2)),r},setOffsets:function(e,r){t.leftOffset=e,t.rightOffset=r},setSearchResults:function(e,r){t.searchResults=e,t.searchQuery=r},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 ge(ge({},e),{},{reversed:!e.reversed})}))),this.scrollTo(t.totalBp/t.bpPerPx-t.offsetPx-t.width)},showTrack:function(r){var n=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),r);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(ge(ge({},n),{},{type:i.type,configuration:i,displays:[ge({type:u.type,configuration:u},o)]}));return t.tracks.push(f),f}return d[0]},hideTrack:function(r){var n=e.pluggableConfigSchemaType("track"),o=y.resolveIdentifier(n,y.getRoot(t),r),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,r){var n=e.tracks.findIndex((function(e){return e.id===t}));if(-1===n)throw new Error("Track ID ".concat(t," not found"));var o=e.tracks.findIndex((function(e){return e.id===r}));if(-1===o)throw new Error("Track ID ".concat(r," not found"));var a=y.getSnapshot(e.tracks[n]);e.tracks.splice(n,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 r=t.addWidget("HierarchicalTrackSelectorWidget","hierarchicalTrackSelector",{view:e});return t.showWidget(r),r}}throw new Error("invalid track selector type ".concat(e.trackSelectorType))},navToLocString:function(t,r){var n=s.getSession(e).assemblyManager,o=n.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=r,c="";0!==e.displayedRegions.length&&(l=e.displayedRegions[0].assemblyName,c=e.displayedRegions[0].refName);var u=l&&n.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=n.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),x=s.clamp(null!==(k=null==f?void 0:f.end)&&void 0!==k?k:y.end,0,y.end);this.navTo(ge(ge({},f),{},{start:w,end:x}))}}},navTo:function(e){this.navToMultiple([e])},navToMultiple:function(t){var r=t[0],n=r.refName,o=r.start,a=r.end,i=r.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(n);u&&(n=u)}for(var d,f=o,m=a,p=!1,g=function(e){if(n===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(n,'"'));if(void 0===f)throw new Error('could not find a region with refName "'.concat(n,'" that contained an end position ').concat(m));if(void 0===m)throw new Error('could not find a region with refName "'.concat(n,'" 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(r),'"'));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 x=t[b],E=e.displayedRegions[d+b];if(k=x.start||E.start,w=x.end||E.end,x.refName!==E.refName)throw new Error("Entered location ".concat(s.assembleLocString(x)," does not match with displayed regions"));if(b>0&&!(E.reversed?w===E.end:k===E.start))throw new Error("".concat(E.reversed?"End":"Start"," of region ").concat(s.assembleLocString(x)," should be ").concat((E.reversed?E.end:E.start+1).toLocaleString("en-US"),", but it is not"));if(b!==t.length-1&&!(E.reversed?k===E.start:w===E.end))throw new Error("".concat(E.reversed?"Start":"End"," of region ").concat(s.assembleLocString(x)," should be ").concat((E.reversed?E.start+1:E.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,r){if(void 0!==t&&void 0!==r){if(t.refName===r.refName&&t.index===r.index&&r.offset<t.offset||t.index>r.index){var n=[r,t];t=n[0],r=n[1]}var o={start:t.start,end:t.end,index:t.index,offset:t.offset},a={start:r.start,end:r.end,index:r.index,offset:r.offset};o&&a?this.moveTo(o,a):s.getSession(e).notify("No regions found to navigate to","warning")}},getSelectedRegions:function(t,r){var n=N.create(ge(ge({},y.getSnapshot(e)),{},{interRegionPaddingWidth:e.interRegionPaddingWidth}));return n.setVolatileWidth(e.width),n.zoomToDisplayedRegions(t,r),n.dynamicBlocks.contentBlocks.map((function(e){return ge(ge({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},afterDisplayedRegionsSet:function(t){e.afterDisplayedRegionsSetCallbacks.push(t)},moveTo:function(t,r){var n=0;if(t.index===r.index)n+=r.offset-t.offset;else{var o=e.displayedRegions[t.index];if(n+=o.end-o.start-t.offset,r.index-t.index>=2)for(var a=t.index+1;a<r.index;a+=1)n+=e.displayedRegions[a].end-e.displayedRegions[a].start;n+=r.offset}var i=n/(e.width-e.interRegionPaddingWidth*(r.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 r=e.offsetPx;return e.scrollTo(e.offsetPx+t)-r},centerAt:function(t,r,n){var o=e.bpToPx({refName:r,coord:t,regionNumber:n});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 r=s.getSession(e),n=r.assemblyManager;if(!t){var o=Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))));if(o.length>1)return void r.notify("Can't perform this with multiple assemblies currently");t=Pe(o,1)[0]}var a=n.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(r){var n=Pe(s.springAnimate(e.offsetPx,e.offsetPx+e.width*r,e.scrollTo),2),o=n[0],a=n[1];t(),t=a,o()}}})).actions((function(e){var t=function(){};return{zoom:function(r){if(e.zoomTo(e.bpPerPx),!(r<e.bpPerPx&&e.bpPerPx===e.minBpPerPx||r>e.bpPerPx&&e.bpPerPx===e.maxBpPerPx)){var n=Pe(s.springAnimate(1,e.bpPerPx/r,e.setScaleFactor,(function(){e.zoomTo(r),e.setScaleFactor(1)})),2),o=n[0],a=n[1];t(),t=a,o()}}}})).views((function(e){var t,r="";return{menuItems:function(){var t,r=[{label:"Return to import form",onClick:function(){s.getSession(e).setDialogComponent(Tr,{model:e})},icon:O},{label:"Export SVG",icon:F,onClick:function(){s.getSession(e).setDialogComponent(Sr,{model:e})}},{label:"Open track selector",onClick:e.activateTrackSelector,icon:M.TrackSelector},{label:"Horizontally flip",icon:L,onClick:e.horizontallyFlip},{type:"divider"},{label:"Show all regions in assembly",icon:I,onClick:e.showAllRegionsInAssembly},{label:"Show center line",icon:I,type:"checkbox",checked:e.showCenterLine,onClick:e.toggleCenterLine},{label:"Show header",icon:I,type:"checkbox",checked:!e.hideHeader,onClick:e.toggleHeader},{label:"Show header overview",icon:I,type:"checkbox",checked:!e.hideHeaderOverview,onClick:e.toggleHeaderOverview,disabled:e.hideHeader},{label:"Track labels",icon:D,subMenu:[{label:"Overlapping",icon:I,type:"radio",checked:"overlapping"===e.trackLabels,onClick:function(){return e.setTrackLabels("overlapping")}},{label:"Offset",icon:I,type:"radio",checked:"offset"===e.trackLabels,onClick:function(){return e.setTrackLabels("offset")}},{label:"Hidden",icon:I,type:"radio",checked:"hidden"===e.trackLabels,onClick:function(){return e.setTrackLabels("hidden")}}]}],n=Ne(e.trackTypeActions.entries());try{for(n.s();!(t=n.n()).done;){var o=Pe(t.value,2),a=o[1];a.length&&(r.push({type:"divider"},{type:"subHeader",label:o[0]}),a.forEach((function(e){r.push(e)})))}}catch(e){n.e(e)}finally{n.f()}return r},get staticBlocks(){var n=R(e),o=JSON.stringify(n);return r!==o&&(t=n,r=o),t},get dynamicBlocks(){return B(e)},get roundedDynamicBlocks(){return this.dynamicBlocks.contentBlocks.map((function(e){return ge(ge({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},get visibleLocStrings(){return Br(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return Br(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 ye(Ie.mark((function r(){var n,o;return Ie.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=t.length>0&&void 0!==t[0]?t[0]:{},r.next=3,kr(e,n);case 3:o=new Blob([r.sent],{type:"image/svg+xml"}),q.saveAs(o,"image.svg");case 6:case"end":return r.stop()}}),r)})))()}}})).views((function(e){return{rubberBandMenuItems:function(){return[{label:"Zoom to region",icon:j,onClick:function(){e.leftOffset&&e.rightOffset&&e.moveTo(e.leftOffset,e.rightOffset)}},{label:"Get sequence",icon:h,onClick:function(){e.setSequenceDialogOpen(!0)}}]}}}))}var Dr=t.lazy((function(){return Promise.resolve().then((function(){return Ar}))})),Or=function(e){return y.types.compose("LinearBasicDisplay",nt,y.types.model({type:y.types.literal("LinearBasicDisplay"),trackShowLabels:y.types.maybe(y.types.boolean),trackDisplayMode:y.types.maybe(y.types.string),trackMaxHeight:y.types.maybe(y.types.number),configuration:n.ConfigurationReference(e)})).views((function(e){return{get rendererTypeName(){return n.getConf(e,["renderer","type"])},get showLabels(){var t=n.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowLabels?e.trackShowLabels:t},get maxHeight(){var t=n.getConf(e,["renderer","maxHeight"]);return void 0!==e.trackMaxHeight?e.trackMaxHeight:t},get displayMode(){var t=n.getConf(e,["renderer","displayMode"]);return void 0!==e.trackDisplayMode?e.trackDisplayMode:t},get rendererConfig(){var t=n.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create(ge(ge({},t),{},{showLabels:this.showLabels,displayMode:this.displayMode,maxHeight:this.maxHeight}),y.getEnv(e))}}})).actions((function(e){return{toggleShowLabels:function(){e.trackShowLabels=!e.showLabels},setDisplayMode:function(t){e.trackDisplayMode=t},setMaxHeight:function(t){e.trackMaxHeight=t}}})).views((function(e){var t=e.trackMenuItems,r=e.renderProps;return{renderProps:function(){var t=e.rendererConfig;return ge(ge({},r()),{},{config:t})},trackMenuItems:function(){return[].concat(Te(t()),[{label:"Show labels",icon:I,type:"checkbox",checked:e.showLabels,onClick:function(){e.toggleShowLabels()}},{label:"Display mode",icon:I,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).setDialogComponent(Dr,{model:e})}}])}}}))};function Fr(e){return n.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:Me,explicitlyTyped:!0})}var jr=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}}),t&&xe(e,t)}(f,c);var r,d=Ce(f);function f(){var e;return be(this,f),(e=d.apply(this,arguments)).name="LinearGenomeViewPlugin",e.exports={BaseLinearDisplayComponent:Ge,BaseLinearDisplay:nt,baseLinearDisplayConfigSchema:Me},e}return(r=[{key:"install",value:function(e){e.addTrackType((function(){var t=n.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=n.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=ot(e);return new i({name:"LinearBareDisplay",configSchema:t,stateModel:at(t),trackType:"BasicTrack",viewType:"LinearGenomeView",ReactComponent:Ge})})),e.addDisplayType((function(){var t=Fr(e);return new i({name:"LinearBasicDisplay",configSchema:t,stateModel:Or(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Ge})})),e.addViewType((function(){return new l({name:"LinearGenomeView",stateModel:Ir(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return xr}))}))})}))}},{key:"configure",value:function(e){s.isAbstractMenuManager(e.rootModel)&&e.rootModel.appendToSubMenu(["File","Add"],{label:"Linear genome view",icon:u,onClick:function(e){e.addView("LinearGenomeView",{})}})}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(f.prototype,r),f}(),zr=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 qr(e){var n=e.model,o=e.handleClose,a=zr(),i=n.maxHeight,l=Pe(t.useState("".concat(void 0===i?"":i)),2),c=l[0],s=l[1];return r.createElement(b.Dialog,{open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Filter options",r.createElement(b.IconButton,{"aria-label":"close",className:a.closeButton,onClick:o},r.createElement(ne,null))),r.createElement(b.DialogContent,null,r.createElement("div",{className:a.root},r.createElement(b.Typography,null,"Set max height for the track"),r.createElement(b.TextField,{value:c,onChange:function(e){s(e.target.value)},placeholder:"Enter max score"}),r.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){n.setMaxHeight(""===c||Number.isNaN(+c)?void 0:+c),o()}},"Submit"))))}var Ar={__proto__:null,default:w.observer(qr)};exports.BaseLinearDisplay=nt,exports.BaseLinearDisplayComponent=Ge,exports.baseLinearDisplayConfigSchema=Me,exports.default=jr,exports.linearBareDisplayConfigSchemaFactory=ot,exports.linearBasicDisplayConfigSchemaFactory=Fr,exports.linearBasicDisplayModelFactory=Or,exports.renderToSvg=kr;
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"),r=e(t),n=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"),p=require("@jbrowse/core/util/tracks"),m=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"),x=require("react-popper"),E=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=require("@jbrowse/core/ui/Icons"),D=e(require("@material-ui/icons/SyncAlt")),I=e(require("@material-ui/icons/Visibility")),O=e(require("@material-ui/icons/Label")),F=e(require("@material-ui/icons/FolderOpen")),j=e(require("@material-ui/icons/PhotoCamera")),z=e(require("@material-ui/icons/ZoomIn")),q=e(require("clone")),A=require("file-saver"),H=require("react-dom/server"),W=e(require("@material-ui/icons/ArrowForward")),V=e(require("@material-ui/icons/ArrowBack")),_=require("@jbrowse/core/TextSearch/BaseResults"),G=e(_),X=e(require("@material-ui/icons/Search")),U=e(require("@material-ui/lab/Autocomplete")),Y=e(require("@material-ui/core/LinearProgress")),J=e(require("clsx")),Z=e(require("prop-types")),K=e(require("@material-ui/core/IconButton")),Q=e(require("@material-ui/core/Slider")),$=e(require("@material-ui/icons/ZoomOut")),ee=e(require("@material-ui/core/Paper")),te=e(require("@material-ui/icons/MoreVert")),re=e(require("@material-ui/icons/DragIndicator")),ne=e(require("@material-ui/icons/Close")),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("@material-ui/icons/KeyboardArrowDown")),ue=e(require("@jbrowse/core/ui/Menu")),de=e(require("copy-to-clipboard")),fe=e(require("@material-ui/icons/GetApp")),pe=require("@jbrowse/core/util/formatFastaStrings");function me(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ge(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?me(Object(r),!0).forEach((function(t){ke(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):me(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function he(e){return(he="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 ve(e,t,r,n,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void r(e)}l.done?t(c):Promise.resolve(c).then(n,o)}function ye(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){ve(a,n,o,i,l,"next",e)}function l(e){ve(a,n,o,i,l,"throw",e)}i(void 0)}))}}function be(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ke(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function we(e){return(we=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 Ee(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Se(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 Ce(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 r,n=we(e);if(t){var o=we(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return Se(this,r)}}function Pe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw o}}return a}}(e,t)||Be(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 Re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Be(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 Be(e,t){if(e){if("string"==typeof e)return Re(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Re(e,t):void 0}}function Re(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ne(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Be(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}var Me=n.ConfigurationSchema("BaseLinearDisplay",{maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:Number.MAX_VALUE}},{explicitIdentifier:"displayId"});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,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var o=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new E(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var l=k(i,r);if(l){if(l===u)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,a),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var u={};function d(){}function f(){}function p(){}var m={};l(m,o,(function(){return this}));var g=Object.getPrototypeOf,h=g&&g(g(S([])));h&&h!==t&&r.call(h,o)&&(m=h);var v=p.prototype=d.prototype=Object.create(m);function y(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(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&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function k(e,t){var r=e.iterator[t.method];if(void 0===r){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 n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var o=n.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 x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(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 n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],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=p,l(v,"constructor",p),l(p,"constructor",f),f.displayName=l(p,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,p):(e.__proto__=p,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,r,n,o,a){void 0===a&&(a=Promise);var i=new b(c(t,r,n,o),a);return e.isGeneratorFunction(r)?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 r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=S,E.prototype={constructor:E,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(x),!e)for(var t in this)"t"===t.charAt(0)&&r.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 n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.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 r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"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=E.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}}})),Oe=w.observer((function(e){var t=e.block,n=e.children,o=Ie();return r.createElement("div",{style:{width:"".concat(t.widthPx,"px")},className:o.contentBlock},n)}));function Fe(e){var t=e.width,n=Ie();return r.createElement("div",{className:n.elidedBlock,style:{width:"".concat(t,"px")}})}function je(e){var t=e.boundary,n=e.width,o=e.style,a=void 0===o?{}:o,i=Ie();return r.createElement("div",{style:ge(ge({},a),{},{width:"".concat(n,"px")}),className:t?i.boundaryPaddingBlock:i.interRegionPaddingBlock})}var ze=E.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"}}),qe=w.observer((function(e){var t=e.model,n=ze(),o=t.blockState;return r.createElement(r.Fragment,null,t.blockDefinitions.map((function(e){if(e instanceof S.ContentBlock){var a=o.get(e.key);return r.createElement(Oe,{block:e,key:"".concat(t.id,"-").concat(e.key)},a&&a.ReactComponent?r.createElement(a.ReactComponent,{model:a}):null,a&&a.maxHeightReached?r.createElement("div",{className:n.heightOverflowed,style:{top:a.layout.getTotalHeight()-16,pointerEvents:"none",height:16}},"Max height reached"):null)}if(e instanceof S.ElidedBlock)return r.createElement(Fe,{key:"".concat(t.id,"-").concat(e.key),width:e.widthPx});if(e instanceof S.InterRegionPaddingBlock)return r.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant});throw new Error("invalid block type ".concat(he(e)))})))}));function Ae(e){var t=e.model,n=ze(),o=t.blockDefinitions,a=s.getContainingView(t);return r.createElement("div",{"data-testid":"Blockset",className:n.linearBlocks,style:{left:o.offsetPx-a.offsetPx}},r.createElement(qe,{model:t}))}Ae.propTypes={model:w.PropTypes.observableObject.isRequired};var He=w.observer(Ae),We=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",fontWeight:e.typography.fontWeightMedium}}})),Ve=r.forwardRef((function(e,t){return r.createElement("div",{ref:t},e.message)})),_e=w.observer((function(e){var o=e.model,a=e.clientMouseCoord,i=We(),l=o.featureUnderMouse,c=Pe(t.useState(0),2),s=c[0],u=c[1],d=Pe(t.useState(null),2),f=d[0],p=d[1],m=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=x.usePopper(m,f),h=g.styles,v=g.attributes,y=l?n.getConf(o,"mouseover",{feature:l}):void 0;return l&&y?r.createElement(b.Portal,null,r.createElement("div",Object.assign({ref:p,className:i.tooltip,style:ge(ge({},h.popper),{},{zIndex:1e5})},v.popper),r.createElement(Ve,{ref:function(e){return u((null==e?void 0:e.getBoundingClientRect().width)||0)},message:y}))):null})),Ge=w.observer((function(e){var o=We(),a=b.useTheme(),i=t.useRef(null),l=Pe(t.useState(),2),c=l[0],s=l[1],u=Pe(t.useState([0,0]),2),d=u[0],f=u[1],p=Pe(t.useState([0,0]),2),m=p[0],g=p[1],h=Pe(t.useState(),2),v=h[0],y=h[1],w=e.model,x=e.children,E=w.TooltipComponent,S=w.DisplayMessageComponent,C=w.contextMenuItems,P=w.height,T=w.setContextMenuFeature;return r.createElement("div",{ref:i,"data-testid":"display-".concat(n.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?r.createElement(S,{model:w}):r.createElement(He,Object.assign({},e)),x,r.createElement(E,{model:w,height:P,offsetMouseCoord:d,clientMouseCoord:m,clientRect:c,mouseCoord:d}),r.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"}))})),Xe=E.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 Ue(e){var t=e.children;return r.createElement("div",{style:{display:"flex"}},t,t)}var Ye=w.observer((function(e){var n=e.model,o=Pe(t.useState(!1),2),a=o[0],i=o[1],l=Xe();t.useEffect((function(){var e=!1,t=setTimeout((function(){e||i(!0)}),300);return function(){clearTimeout(t),e=!0}}),[]);var c=n.status,s=y.getParent(n,2).message||c;return r.createElement(r.Fragment,null,a?r.createElement("div",{className:l.loading},r.createElement(g,{className:l.dots,variant:"body2"},s?"".concat(s):"Loading")):null)}));function Je(e){var t=e.messageContent,n=Xe();return r.isValidElement(t)?r.createElement("div",{className:n.blockReactNodeMessage},t):r.createElement(g,{variant:"body2",className:n.blockMessage},t)}function Ze(e){var t=e.error,n=e.reload,o=e.displayHeight,a=Xe();return r.createElement("div",{className:a.blockError,style:{height:o}},n?r.createElement(m,{"data-testid":"reload_button",onClick:n,startIcon:r.createElement(T,null)},"Reload"):null,r.createElement(g,{color:"error",variant:"body2",display:"inline"},"".concat(t)))}var Ke=w.observer((function(e){var t=e.model;return t.error?r.createElement(Ue,null,r.createElement(Ze,{error:t.error,reload:t.reload,displayHeight:p.getParentRenderProps(t).displayModel.height})):t.message?r.createElement(Ue,null,r.createElement(Je,{messageContent:t.message})):t.filled?t.reactElement:r.createElement(Ue,null,r.createElement(Ye,{model:t}))})),Qe=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:Ke,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,$e,et,{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(r){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=r},setMessage:function(r){t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=r,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(r){if(r){var n=r.reactElement,o=r.features,a=r.layout,i=r.maxHeightReached,l=r.renderProps;e.filled=!0,e.message=void 0,e.reactElement=n,e.features=o,e.layout=a,e.error=void 0,e.maxHeightReached=i,e.renderProps=l,t=void 0}},setError:function(r){console.error(r),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=r,e.renderProps=void 0,t=void 0,P.isRetryException(r)&&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=Ke,e.renderProps=void 0,y.getParent(e,2).reload()},beforeDestroy:function(){t&&!t.signal.aborted&&t.abort();var r=s.getContainingDisplay(e),n=s.getSession(e).rpcManager,o=r.rendererType,a=$e(y.cast(e)).renderArgs;a&&o.freeResourcesInClient(n,JSON.parse(JSON.stringify(a))).catch((function(e){console.warn("Error while destroying block",e)}))}}}));function $e(e,t){try{var r=t||s.getContainingDisplay(e),o=s.getSession(r),a=o.assemblyManager,i=o.rpcManager,l=r.adapterConfig,c=r.rendererType,u=r.error,d=p.getTrackAssemblyNames(r.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=r.renderProps();n.readConfObject(m.config);var g=p.getRpcSessionId(r);return{rendererType:c,rpcManager:i,renderProps:m,cannotBeRenderedReason:r.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 et(e,t,r){return tt.apply(this,arguments)}function tt(){return(tt=ye(De.mark((function e(t,r,n){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,y.isAlive(n)){e.next=3;break}return e.abrupt("return",void 0);case 3:if(!s){e.next=6;break}return n.setError(s),e.abrupt("return",void 0);case 6:if(!c){e.next=9;break}return n.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,ge(ge(ge({},l),a),{},{signal:r}));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"],nt=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(Qe),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,r=s.getContainingView(e);if(!r.initialized)throw new Error("view not initialized yet");return r[t]}}})).views((function(e){return{get maxViewBpPerPx(){return e.userBpPerPxLimit||n.getConf(e,"maxDisplayedBpPerPx")},get renderDelay(){return 50},get TooltipComponent(){return _e},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,r=[],n=Ne(e.blockState.values());try{for(n.s();!(t=n.n()).done;){var o=t.value;o&&o.features&&r.push(o.features)}}catch(e){n.e(e)}finally{n.f()}return new d(r)},get featureUnderMouse(){return e.featureIdUnderMouse?this.features.get(e.featureIdUnderMouse):void 0},getFeatureOverlapping:function(t,r,n){var o,a;return null===(o=e.blockState.get(t))||void 0===o||null===(a=o.layout)||void 0===a?void 0:a.getByCoord(r,n)},getFeatureByID:function(t,r){var n,o;return null===(n=e.blockState.get(t))||void 0===n||null===(o=n.layout)||void 0===o?void 0:o.getByID(r)},searchFeatureByID:function(t){var r;return e.blockState.forEach((function(e){var n,o=null==e||null===(n=e.layout)||void 0===n?void 0:n.getByID(t);o&&(r=o)})),r}}})).actions((function(e){return{afterAttach:function(){var t=this,r=v.autorun((function(){var r={};s.getContainingView(e).initialized&&(e.blockDefinitions.contentBlocks.forEach((function(n){r[n.key]=!0,e.blockState.has(n.key)||t.addBlock(n.key,n)})),e.blockState.forEach((function(e,n){r[n]||t.deleteBlock(n)})))}));y.addDisposer(e,r)},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r},setScrollTop:function(t){e.scrollTop=t},setUserBpPerPxLimit:function(t){e.userBpPerPxLimit=t},setMessage:function(t){e.message=t},addBlock:function(t,r){e.blockState.set(t,Qe.create({key:t,region:r.toRegion()}))},deleteBlock:function(t){e.blockState.delete(t)},selectFeature:function(t){var r=s.getSession(e);if(s.isSessionModelWithWidgets(r)){var n=r.addWidget("BaseFeatureWidget","baseFeature",{featureData:t.toJSON(),view:s.getContainingView(e)});r.showWidget(n)}s.isSelectionContainer(r)&&r.setSelection(t)},clearFeatureSelection:function(){s.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{regionCannotBeRenderedText:function(t){var r=s.getContainingView(e);return r&&r.bpPerPx>e.maxViewBpPerPx?"Zoom in to see features":""},regionCannotBeRendered:function(t){var n=s.getContainingView(e);if(n&&n.bpPerPx>e.maxViewBpPerPx)return r.createElement(r.Fragment,null,r.createElement(g,{component:"span",variant:"body2"},"Zoom in to see features or"," "),r.createElement(m,{"data-testid":"reload_button",onClick:function(){e.setUserBpPerPxLimit(n.bpPerPx),e.reload()},variant:"outlined"},"Force Load"),r.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 ge(ge({},p.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,displayModel:e,onFeatureClick:function(t,r){var n=r||e.featureIdUnderMouse;if(n){var o=e.features.get(n);e.selectFeature(o)}else e.clearFeatureSelection()},onClick:function(){e.clearFeatureSelection()},onFeatureContextMenu:function(t,r){var n=r||e.featureIdUnderMouse;n?e.setContextMenuFeature(e.features.get(n)):e.clearFeatureSelection()},onMouseMove:function(t,r){e.setFeatureIdUnderMouse(r)},onMouseLeave:function(t){e.setFeatureIdUnderMouse(void 0)},onContextMenu:function(){e.setContextMenuFeature(void 0),e.clearFeatureSelection()}})}}})).actions((function(e){return{renderSvg:function(t){return ye(De.mark((function n(){var o,a,i,l,c,u,d;return De.wrap((function(n){for(;;)switch(n.prev=n.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,n.next=6,Promise.all(u.map((function(n){var o=Qe.create({key:n.key,region:n}),a=e.regionCannotBeRenderedText(n)||e.regionCannotBeRendered(n);if(a)return{reactElement:r.createElement(r.Fragment,null,r.createElement("rect",{x:0,y:0,width:d,height:20,fill:"#aaa"}),r.createElement("text",{x:0,y:15},a))};var i=$e(o,e),l=i.renderProps;return i.rendererType.renderInClient(i.rpcManager,ge(ge(ge({},i.renderArgs),l),{},{exportSVG:t}))})));case 6:return n.abrupt("return",r.createElement(r.Fragment,null,n.sent.map((function(e,t){var n=u[t].offsetPx-c,l="clip-".concat("undefined"==typeof jest?a:"jest","-").concat(t);return r.createElement(r.Fragment,{key:"frag-".concat(t)},r.createElement("defs",null,r.createElement("clipPath",{id:l},r.createElement("rect",{x:0,y:0,width:d,height:i||o}))),r.createElement("g",{transform:"translate(".concat(n," 0)")},r.createElement("g",{clipPath:"url(#".concat(l,")")},r.isValidElement(e.reactElement)?e.reactElement:r.createElement("g",{dangerouslySetInnerHTML:{__html:e.html}}))))}))));case 8:case"end":return n.stop()}}),n)})))()}}})).postProcessSnapshot((function(e){return Ee(e,rt)}));function ot(e){return n.ConfigurationSchema("LinearBareDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Me,explicitlyTyped:!0})}function at(e){return y.types.compose("LinearBareDisplay",nt,y.types.model({type:y.types.literal("LinearBareDisplay"),configuration:B.ConfigurationReference(e)})).views((function(e){var t=e.renderProps;return{renderProps:function(){return ge(ge(ge({},t()),p.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,config:e.configuration.renderer})},get rendererTypeName(){return e.configuration.renderer.type}}}))}function it(e,t,r){return lt.apply(this,arguments)}function lt(){return(lt=ye(De.mark((function e(t,r,n){var o,a,i,l;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=s.getSession(t),a=o.textSearchManager,i=t.rankSearchResults,l=t.searchScope(n),e.abrupt("return",null==a?void 0:a.search({queryString:r,searchType:"prefix"},l,i).then((function(e){return e.filter((function(e,t,r){return t===r.findIndex((function(t){return t.label===e.label}))}))})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ct=function(e){var t=e.style;return r.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 st(e){var n=e.model,o=e.onSelect,a=e.assemblyName,i=e.style,l=e.value,c=e.TextFieldProps,u=void 0===c?{}:c,d=s.getSession(n),f=d.assemblyManager,p=Pe(t.useState(!1),2),m=p[0],g=p[1],h=Pe(t.useState(!0),2),v=h[0],y=h[1],k=Pe(t.useState(""),2),w=k[0],x=k[1],E=Pe(t.useState(""),2),S=E[0],C=E[1],P=Pe(t.useState([]),2),T=P[0],B=P[1],R=s.useDebounce(w,300),N=n.coarseVisibleLocStrings,M=n.hasDisplayedRegions,L=a?f.get(a):void 0,D=(null==L?void 0:L.regions)||[],I=t.useMemo((function(){return D.map((function(e){return{result:new _.RefSequenceResult({refName:e.refName,label:e.refName,matchedAttribute:"refName"})}}))}),[D]);t.useEffect((function(){var e=!0;return ye(De.mark((function t(){var r;return De.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,""!==R&&a){t.next=3;break}return t.abrupt("return");case 3:return y(!1),t.next=6,it(n,R,a);case 6:r=t.sent,e&&(r&&r.length>=0&&B(r.map((function(e){return{result:e}}))),y(!0)),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e&&d.notify("".concat(t.t0),"error");case 14:case"end":return t.stop()}}),t,null,[[0,10]])})))(),function(){e=!1}}),[a,R,d,n]);var O=N||l||"",F=Math.min(Math.max(s.measureText(O,16)+25,200),550);return r.createElement(U,{id:"refNameAutocomplete-".concat(n.id),"data-testid":"autocomplete",disableListWrap:!0,disableClearable:!0,PopperComponent:ct,disabled:!a,freeSolo:!0,includeInputInList:!0,selectOnFocus:!0,style:ge(ge({},i),{},{width:F}),value:O,loading:!v,inputValue:S,onInputChange:function(e,t){return C(t)},loadingText:"loading results",open:m,onOpen:function(){return g(!0)},onClose:function(){g(!1),y(!0),M&&(x(""),B([]))},onChange:function(e,t){t&&a&&(o("string"==typeof t?new G({label:t}):t.result),C(O))},options:0===T.length?I:T,getOptionDisabled:function(e){return"limitOption"===(null==e?void 0:e.group)},filterOptions:function(e,t){var r=function(e,t){return e.filter((function(e){var r=e.result;return r.getLabel().toLowerCase().includes(t)||r.matchedObject}))}(e,t.inputValue.toLocaleLowerCase());return[].concat(Te(r.slice(0,100)),Te(r.length>100?[{group:"limitOption",result:new G({label:"keep typing for more results"})}]:[]))},renderInput:function(e){var t=u.InputProps,n=void 0===t?{}:t;return r.createElement(b.TextField,Object.assign({onBlur:function(){C(O)}},e,u,{helperText:u.helperText,InputProps:ge(ge(ge({},e.InputProps),n),{},{endAdornment:r.createElement(r.Fragment,null,0===D.length?r.createElement(b.CircularProgress,{color:"inherit",size:20}):r.createElement(b.InputAdornment,{position:"end",style:{marginRight:7}},r.createElement(X,null)),e.InputProps.endAdornment)}),placeholder:"Search for location",onChange:function(e){x(e.target.value)}}))},renderOption:function(e){var t=e.result,n=t.getRenderingComponent();return n&&r.isValidElement(n)?n:r.createElement(b.Typography,{noWrap:!0},t.getDisplayString())},getOptionLabel:function(e){return("string"==typeof e?e:e.result.getLabel())||""}})}var ut=w.observer(st);function dt(e,t,r){for(var n=t*(e=Math.abs(e)),o=parseInt(Number(n).toExponential().split(/e/i)[1],10),a=Math.pow(10,o);a<n&&!((a*=2)>=n);)a*=2.5;var i=(a=Math.max(a,5))/e,l=0;return!(a%10)&&i/10>=r?l=a/10:!(a%5)&&i/5>=r?l=a/5:!(a%2)&&i/2>=r&&(l=a/2),{majorPitch:a,minorPitch:l}}function ft(e,t,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=dt(r,60,15),i=e,l=t;if(null===i||null===l)return[];if(r<0){var c=[l,i];i=c[0],l=c[1]}i-=Math.abs(20*r)-1,l+=Math.abs(20*r)+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):!n||f%(2*a.majorPitch)||(d.push({type:"major",base:f-1,index:u}),u+=1);return d}var pt=E.makeStyles((function(e){return{rubberBand:{height:"100%",background:E.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}}}));function mt(e){var n=e.model,o=e.overview,a=e.ControlComponent,i=void 0===a?r.createElement("div",null):a,l=Pe(t.useState(),2),c=l[0],u=l[1],d=Pe(t.useState(),2),f=d[0],p=d[1],m=Pe(t.useState(),2),g=m[0],h=m[1],v=t.useRef(null),y=t.useRef(null),k=pt(),w=void 0!==c;function x(e){e.preventDefault(),e.stopPropagation(),v.current&&u(e.clientX-v.current.getBoundingClientRect().left)}function E(e){v.current&&h(e.clientX-v.current.getBoundingClientRect().left)}function S(){h(void 0)}if(t.useEffect((function(){function e(e){if(v.current&&w){var t=e.clientX-v.current.getBoundingClientRect().left;p(t)}}function t(){if(v.current&&void 0!==c&&void 0!==f&&Math.abs(f-c)>3&&n.zoomToDisplayedRegions(o.pxToBp(c),o.pxToBp(f)),v.current&&void 0!==c&&void 0===f){var e=o.pxToBp(c);n.centerAt(Math.round(e.coord),e.refName,e.index)}u(void 0),p(void 0),void 0!==c&&h(void 0)}function r(e){"Escape"===e.key&&(u(void 0),p(void 0))}return w?(window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0),window.addEventListener("keydown",r,!0),function(){window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),window.removeEventListener("keydown",r,!0)}):function(){}}),[w,f,c,n,o]),void 0===c)return r.createElement("div",{style:{position:"relative"}},void 0!==g?r.createElement(b.Tooltip,{open:!w,placement:"top",title:s.stringify(o.pxToBp(g)),arrow:!0},r.createElement("div",{className:k.guide,style:{left:g}})):null,r.createElement("div",{className:k.rubberBandControl,role:"presentation",ref:v,onMouseDown:x,onMouseOut:S,onMouseMove:E},i));var C,P,T=c||0,B=0;if(void 0!==c&&void 0!==f&&(T=f<c?f:c,B=f-c),c&&(C=o.pxToBp(c),P=o.pxToBp(c+B),f&&f<c)){var R=[P,C];C=R[0],P=R[1]}return r.createElement("div",{style:{position:"relative"}},y.current?r.createElement(r.Fragment,null,r.createElement(b.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:y.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(b.Typography,null,C?s.stringify(C):"")),r.createElement(b.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:y.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(b.Typography,null,P?s.stringify(P):""))):null,r.createElement("div",{ref:y,className:k.rubberBand,style:{left:T,width:Math.abs(B),height:Mr}}),r.createElement("div",{"data-testid":"rubberBand_controls",className:k.rubberBandControl,role:"presentation",ref:v,onMouseDown:x,onMouseOut:S,onMouseMove:E},i))}mt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,overview:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:Z.node},mt.defaultProps={ControlComponent:r.createElement("div",null)};var gt=w.observer(mt),ht=E.makeStyles((function(e){var t=e.palette.tertiary?e.palette.tertiary.light:e.palette.primary.light;return{scaleBar:{width:"100%",height:Mr,overflow:"hidden"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:Mr,border:"1px solid",borderBottomColor:"black"},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"},scaleBarRegionIncompleteLeft:{width:10,height:17.5,background:"linear-gradient(-225deg,black 3px, transparent 1px),\n linear-gradient(45deg, black 3px, transparent 1px)",backgroundRepeat:"repeat-y",backgroundSize:"10px 8px",borderTopLeftRadius:"2px",borderBottomLeftRadius:"2px",float:"left"},scaleBarRegionIncompleteRight:{width:10,height:17.5,background:"linear-gradient(225deg, black 3px, transparent 1px),\n linear-gradient(-45deg, black 3px, transparent 1px)",backgroundRepeat:"repeat-y",backgroundSize:"10px 8px",borderTopRightRadius:"2px",borderBottomRightRadius:"2px",float:"right"},scaleBarRefName:{position:"absolute",fontWeight:"bold",lineHeight:"normal",pointerEvents:"none",left:5},scaleBarLabel:{height:Mr,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{background:E.alpha(t,.3),position:"absolute",height:Mr,pointerEvents:"none",top:-1,zIndex:100,borderWidth:1,borderStyle:"solid",borderColor:E.alpha(t,.8),boxSizing:"content-box"},overview:{height:Nr,position:"relative"},overviewSvg:{position:"absolute"}}})),vt=w.observer((function(e){var t=e.model,n=e.overview,o=E.useTheme(),a=ht(),i=t.offsetPx,l=t.dynamicBlocks,c=l.contentBlocks,s=l.totalWidthPxWithoutBorders,u=o.palette.tertiary?o.palette.tertiary.light:o.palette.primary.light;if(!c.length)return null;var d=c[0],f=c[c.length-1],p=n.bpToPx({refName:d.refName,coord:d.reversed?d.end:d.start,regionNumber:d.regionNumber}),m=n.bpToPx({refName:f.refName,coord:f.reversed?f.start:f.end,regionNumber:f.regionNumber}),g=Math.max(0,-i),h=[[g,Nr],[g+s+c.length*t.interRegionPaddingWidth/2,Nr],[m,0],[p,0]];return r.createElement("svg",{height:Nr,width:"100%",className:a.overviewSvg},h&&r.createElement("polygon",{points:h.toString(),fill:E.alpha(u,.3),stroke:E.alpha(u,.8)}))})),yt=w.observer((function(e){var t=e.model,n=e.scale,o=e.overview,a=ht(),i=t.dynamicBlocks,l=s.getSession(t).assemblyManager,c=dt(n,120,15),u=o.dynamicBlocks;if(!i.contentBlocks.length)return null;var d=i.contentBlocks[0],f=o.bpToPx({refName:d.refName,regionNumber:d.regionNumber,coord:d.reversed?d.end:d.start})||0,p=i.contentBlocks[i.contentBlocks.length-1],m=o.bpToPx({refName:p.refName,coord:p.reversed?p.start:p.end,regionNumber:p.regionNumber})||0;return r.createElement("div",{className:a.scaleBar},r.createElement("div",{className:a.scaleBarVisibleRegion,style:{width:m-f,left:f}}),u.map((function(e,t){var o,i=l.get(e.assemblyName);i&&(o=i.getRefNameColor(e.refName));for(var s=e.end-e.start,u=[],d=0;d<Math.floor(s/c.majorPitch);d++){var f=(d+1)*c.majorPitch;u.push(e.reversed?e.end-f:e.start+f)}return e instanceof S.ContentBlock?r.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(t),className:J(a.scaleBarContig,e.reversed?a.scaleBarContigReverse:a.scaleBarContigForward),style:{left:e.offsetPx,width:e.widthPx,borderColor:o}},r.createElement(b.Typography,{style:{color:o,zIndex:100},className:a.scaleBarRefName},e.refName),u.map((function(t,i){return r.createElement(b.Typography,{key:"".concat(JSON.stringify(e),"-").concat(t,"-").concat(i),className:a.scaleBarLabel,variant:"body2",style:{left:(i+1)*c.majorPitch/n,pointerEvents:"none",color:o}},t.toLocaleString("en-US"))}))):r.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(t),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 bt(e){var t=e.model,n=e.children,o=ht(),a=t.width,i=t.displayedRegions,l=M.create({displayedRegions:JSON.parse(JSON.stringify(i)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth});return l.setVolatileWidth(a),l.showAllRegions(),i.length?r.createElement("div",null,r.createElement(gt,{model:t,overview:l,ControlComponent:r.createElement(yt,{model:t,overview:l,scale:t.totalBp/(a-2*(i.length-1))})}),r.createElement("div",{className:o.overview},r.createElement(vt,{model:t,overview:l}),n)):r.createElement(r.Fragment,null,r.createElement("div",{className:o.scaleBar},r.createElement(Y,{variant:"indeterminate",style:{marginTop:4,width:"100%"}})),r.createElement("div",null,n))}var kt=w.observer(bt),wt=E.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function xt(e){var n=e.model,o=wt(),a=n.maxBpPerPx,i=n.minBpPerPx,l=n.bpPerPx,c=n.scaleFactor,s=Pe(t.useState(100*-Math.log2(l)),2),u=s[0],d=s[1];return t.useEffect((function(){d(100*-Math.log2(l))}),[d,l]),r.createElement("div",{className:o.container},r.createElement(K,{"data-testid":"zoom_out",onClick:function(){n.zoom(2*l)},disabled:l>=a-1e-4||1!==c,color:"secondary"},r.createElement($,null)),r.createElement(Q,{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 n.zoomTo(Math.pow(2,-u/100))},disabled:1!==c}),r.createElement(K,{"data-testid":"zoom_in",onClick:function(){n.zoom(n.bpPerPx/2)},disabled:l<=i+1e-4||1!==c,color:"secondary"},r.createElement(z,null)))}var Et=w.observer(xt);function St(e){return null==e?void 0:e.filter((function(e,t,r){return t===r.findIndex((function(t){return t.getId()===e.getId()}))}))}var Ct=b.makeStyles((function(e){return{headerBar:{height:Nr,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)}}})),Pt=w.observer((function(e){var t=e.model,n=Ct();return r.createElement(b.Button,{onClick:t.activateTrackSelector,className:n.toggleButton,title:"Open track selector",value:"track_select",color:"secondary"},r.createElement(L.TrackSelector,{className:n.buttonSpacer}))}));function Tt(e){var t=e.model,n=Ct();return r.createElement(r.Fragment,null,r.createElement(b.Button,{variant:"outlined",className:n.panButton,onClick:function(){return t.slide(-.9)}},r.createElement(V,null)),r.createElement(b.Button,{variant:"outlined",className:n.panButton,onClick:function(){return t.slide(.9)}},r.createElement(W,null)))}var Bt=w.observer((function(e){var t=e.model,n=Ct();return r.createElement(b.Typography,{variant:"body2",color:"textSecondary",className:n.bp},"".concat(Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp"))})),Rt=w.observer((function(e){var t=e.model,n=Ct(),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){return p.apply(this,arguments)}function p(){return(p=ye(De.mark((function e(t){return De.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.toLowerCase(),searchType:"exact"},d,l);case 3:return e.abrupt("return",St(e.sent));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function m(){return(m=ye(De.mark((function e(r){var n,o,i,l,s;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.getTrackId(),o=r.getLocation(),i=r.getLabel(),e.prev=3,null==u||null===(l=u.refNames)||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);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(),n=s[0].getTrackId());case 17:t.navToLocString(o,c),n&&t.showTrack(n);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=r.createElement("div",{className:n.headerBar},r.createElement(Pt,{model:t}),r.createElement("div",{className:n.spacer}),r.createElement(b.FormGroup,{row:!0,className:n.headerForm},r.createElement(Tt,{model:t}),r.createElement(ut,{onSelect:function(e){return m.apply(this,arguments)},assemblyName:c,model:t,TextFieldProps:{variant:"outlined",className:n.headerRefName,style:{margin:7,minWidth:"175px"},InputProps:{style:{padding:0,height:32,background:b.alpha(o.palette.background.paper,.8)}}}})),r.createElement(Bt,{model:t}),r.createElement(Et,{model:t}),r.createElement("div",{className:n.spacer}));return t.hideHeaderOverview?g:r.createElement(kt,{model:t},g)})),Nt=E.makeStyles((function(e){return{root:{background:E.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)}}})),Mt=w.observer(r.forwardRef((function(e,t){var o,a=Nt(),i=Pe(r.useState(null),2),l=i[0],c=i[1],u=e.track,d=e.className,f=s.getContainingView(u),p=s.getSession(u),m=u.configuration,h=n.getConf(u,"trackId"),v=function(){c(null)},y=n.getConf(u,"name");"ReferenceSequenceTrack"===n.getConf(u,"type")&&(y="Reference Sequence",p.assemblies.forEach((function(e){e.sequence===m&&(y="Reference Sequence (".concat(n.readConfObject(e,"name"),")"))})));var b=u.trackMenuItems();return r.createElement(r.Fragment,null,r.createElement(ee,{ref:t,className:J(d,a.root)},r.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)},r.createElement(re,{className:a.dragHandleIcon})),r.createElement(K,{onClick:function(){return f.hideTrack(h)},className:a.iconButton,title:"close this track",color:"secondary"},r.createElement(ne,null)),r.createElement(g,{variant:"body1",component:"span",className:a.trackName},y),r.createElement(K,{"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},r.createElement(te,null))),r.createElement(k.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:[].concat(Te(null===(o=p.getTrackActionMenuItems)||void 0===o?void 0:o.call(p,m)),Te(b)).sort((function(e,t){return(t.priority||0)-(e.priority||0)}))}))}))),Lt=E.makeStyles((function(e){return{root:{},resizeHandle:{height:Dr,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 Dt(e){var o=Lt(),a=e.model,i=e.track,l=i.displays[0],c=a.horizontalScroll,u=a.draggingTrackId,d=a.moveTrack,f=l.height,p=s.getContainingView(l),m=n.getConf(i,"trackId"),g=t.useRef(null);t.useEffect((function(){return g.current&&(a.trackRefs[m]=g.current),function(){delete a.trackRefs[m]}}),[a.trackRefs,m]);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 r.createElement("div",{className:o.root},"hidden"!==p.trackLabels?r.createElement(Mt,{track:i,className:J(o.trackLabel,"overlapping"===p.trackLabels?o.trackLabelOverlap:o.trackLabelInline)}):null,r.createElement(ee,{variant:"outlined",className:o.trackRenderingContainer,style:{height:f},onScroll:function(e){l.setScrollTop(e.target.scrollTop)},onDragEnter:h,"data-testid":"trackRenderingContainer-".concat(p.id,"-").concat(m),role:"presentation"},r.createElement("div",{ref:g,className:o.renderingComponentContainer,style:{transform:"scaleX(".concat(a.scaleFactor,")")}},r.createElement(v,{model:l,blockState:{},onHorizontalScroll:c})),b?r.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}}," ",r.createElement(b,{model:l})):null),r.createElement("div",{className:o.overlay,style:{height:l.height,background:w?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:h}),r.createElement(k.ResizeHandle,{onDrag:l.resizeHeight,className:o.resizeHandle}))}var It=w.observer(Dt),Ot=E.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}}})),Ft=w.observer((function(e){var t=e.model,n=e.coordX,o=Ot();return r.createElement(le,{open:!0,placement:"top",title:s.stringify(t.pxToBp(n)),arrow:!0},r.createElement("div",{className:o.guide,style:{left:n,background:"red"}}))}));function jt(e){var n=e.model,o=e.ControlComponent,a=void 0===o?r.createElement("div",null):o,i=Pe(t.useState(),2),l=i[0],c=i[1],u=Pe(t.useState(),2),d=u[0],f=u[1],p=Pe(t.useState(),2),m=p[0],h=p[1],v=Pe(t.useState(),2),y=v[0],b=v[1],w=t.useRef(null),x=t.useRef(null),E=Ot(),S=void 0!==l&&void 0===m,C=n.setOffsets,P=n.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),n.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,r=e.clientY,n=t-w.current.getBoundingClientRect().left;h({offsetX:n,clientX:t,clientY:r});var o=function(e){if(void 0!==l){var t=l,r=e;if(r<t){var n=[r,t];t=n[0],r=n[1]}return{leftOffset:P(t),rightOffset:P(r)}}}(n);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,m,C,P]),t.useEffect((function(){!S&&void 0!==d&&void 0!==l&&Math.abs(d-l)<=3&&N()}),[S,d,l,n.bpPerPx]);var M=Boolean(m);if(void 0===l)return r.createElement(r.Fragment,null,void 0!==y?r.createElement(Ft,{model:n,coordX:y}):null,r.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a));var L=m?m.offsetX:d||0,D=L<l?L:l,I=Math.abs(L-l),O=n.pxToBp(D),F=n.pxToBp(D+I),j=Math.ceil(I*n.bpPerPx);return r.createElement(r.Fragment,null,x.current?r.createElement(r.Fragment,null,r.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:x.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(g,null,s.stringify(O))),r.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:x.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},r.createElement(g,null,s.stringify(F)))):null,r.createElement("div",{ref:x,className:E.rubberBand,style:{left:D,width:I}},r.createElement(g,{variant:"h6",className:E.rubberBandText},j.toLocaleString("en-US")," bp")),r.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:T,onMouseOut:R,onMouseMove:B},a),m?r.createElement(k.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:m.clientX,top:m.clientY},onMenuItemClick:function(e,t){t(),N()},open:M,onClose:N,menuItems:n.rubberBandMenuItems()}):null)}jt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired,ControlComponent:Z.node},jt.defaultProps={ControlComponent:r.createElement("div",null)};var zt=w.observer(jt),qt=["model","style","className"],At=E.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}}})),Ht=w.observer((function(e){var t=e.model,n=At(),o=0;return t.staticBlocks.forEach((function(e,r){e.offsetPx-t.offsetPx<0&&(o=r)})),r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,a){return e instanceof S.ContentBlock&&(e.isLeftEndOfDisplayedRegion||a===o)?r.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:n.refLabel,"data-testid":"refLabel-".concat(e.refName)},e.refName):null})))})),Wt=w.observer((function(e){var t=e.model,n=At();return r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ft(e.start,e.end,t.bpPerPx,!0,!1);return r.createElement(Oe,{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 r.createElement("div",{key:o.base,className:n.tick,style:{left:a}},i?r.createElement(g,{className:n.majorTickLabel},i):null)}return null})))}return e instanceof S.ElidedBlock?r.createElement(Fe,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?r.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant}):null})))})),Vt=w.observer(r.forwardRef((function(e,t){var n=e.model,o=e.style,a=e.className,i=Ee(e,qt),l=At(),c=n.staticBlocks.offsetPx-n.offsetPx;return r.createElement(ee,Object.assign({"data-resizer":"true",className:J(l.scaleBarContainer,a),variant:"outlined",ref:t,style:o},i),r.createElement("div",{className:l.scaleBarZoomContainer,style:{transform:1!==n.scaleFactor?"scaleX(".concat(n.scaleFactor,")"):void 0}},r.createElement("div",{className:l.scaleBar,style:ge({left:c-1,width:n.staticBlocks.totalWidthPx},o)},r.createElement(Wt,{model:n}))),r.createElement(Ht,{model:n}))}))),_t=E.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}}})),Gt=w.observer((function(e){var t=e.model,n=_t();return r.createElement(r.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof S.ContentBlock){var a=ft(e.start,e.end,t.bpPerPx);return r.createElement(Oe,{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 r.createElement("div",{key:o.base,className:J(n.tick,"major"===o.type||"labeledMajor"===o.type?n.majorTick:n.minorTick),style:{left:a}})})))}return e instanceof S.ElidedBlock?r.createElement(Fe,{key:e.key,width:e.widthPx}):e instanceof S.InterRegionPaddingBlock?r.createElement(je,{key:e.key,width:e.widthPx,boundary:"boundary"===e.variant}):null})))}));function Xt(e){var t=e.model,n=_t(),o=t.staticBlocks.offsetPx-t.offsetPx;return r.createElement("div",{className:n.verticalGuidesZoomContainer,style:{transform:1!==t.scaleFactor?"scaleX(".concat(t.scaleFactor,")"):void 0}},r.createElement("div",{className:n.verticalGuidesContainer,style:{left:o,width:t.staticBlocks.totalWidthPx}},r.createElement(Gt,{model:t})))}var Ut=w.observer(Xt),Yt=E.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 Jt(e){var n=e.model,o=n.bpPerPx,a=n.centerLineInfo,i=n.trackHeights,l=n.tracks,c=n.width,s=t.useRef(null),u=Yt();return l.length?r.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&&r.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}Jt.propTypes={model:w.PropTypes.objectOrObservableObject.isRequired};var Zt=w.observer(Jt),Kt=E.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:Dr}}}));function Qt(e){var n=e.children,o=e.model,a=Kt(),i=t.useRef(0),l=t.useRef(!1),c=t.useRef(),s=t.useRef(null),u=t.useRef(0),d=Pe(t.useState(!1),2),f=d[0],p=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 r(){u.current=0,f&&p(!1)}return f&&(window.addEventListener("mousemove",t,!0),window.addEventListener("mouseup",r,!0),e=function(){window.removeEventListener("mousemove",t,!0),window.removeEventListener("mouseup",r,!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]),r.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,p(!0))},onMouseUp:function(e){e.preventDefault(),p(!1)},onMouseLeave:function(e){e.preventDefault()}},r.createElement(Ut,{model:o}),o.showCenterLine?r.createElement(Zt,{model:o}):null,r.createElement(zt,{model:o,ControlComponent:r.createElement(Vt,{model:o,style:{height:Lr,boxSizing:"border-box"}})}),r.createElement("div",{className:a.spacer}),n)}var $t=w.observer(Qt),er=E.makeStyles((function(e){return{dialogContent:{width:"80em"},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function tr(e){var t,n,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=er(),c=s.getSession(o),u=y.getEnv(c).pluginManager,d=c.assemblyManager,f=a;if(o.displayedRegions.length>0&&(f=null===(n=o.displayedRegions[0])||void 0===n?void 0:n.assemblyName),!f)throw new Error("Assembly name not found");var p=d.get(f);if(!p)throw new Error("assembly ".concat(f," not found"));if(!p.regions)throw new Error("assembly ".concat(f," regions not loaded"));var m=p.regions;function g(e){try{var t=m.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")}}function h(e){if(e){var t,r=u.pluggableConfigSchemaType("track"),n=y.resolveIdentifier(r,y.getRoot(o),e);if(n)return null===(t=n.name)||void 0===t?void 0:t.value}return""}return r.createElement(b.Dialog,{open:!0,maxWidth:"xl",onClose:i},r.createElement(b.DialogTitle,{id:"search-results-dialog"},"Search Results",i?r.createElement(b.IconButton,{"data-testid":"close-resultsDialog",className:l.closeButton,onClick:function(){i()}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,0===(null===(t=o.searchResults)||void 0===t?void 0:t.length)||void 0===o.searchResults?r.createElement(b.Typography,null,"No results found for ",r.createElement("b",null,o.searchQuery)):r.createElement(r.Fragment,null,r.createElement(b.DialogContentText,{id:"alert-dialog-slide-description"},"Showing results for ",r.createElement("b",null,o.searchQuery)),r.createElement(b.TableContainer,{component:b.Paper},r.createElement(b.Table,null,r.createElement(b.TableHead,null,r.createElement(b.TableRow,null,r.createElement(b.TableCell,null,"Name"),r.createElement(b.TableCell,{align:"right"},"Location"),r.createElement(b.TableCell,{align:"right"},"Track"),r.createElement(b.TableCell,{align:"right"}))),r.createElement(b.TableBody,null,o.searchResults.map((function(e,t){return r.createElement(b.TableRow,{key:"".concat(e.getLabel(),"-").concat(t)},r.createElement(b.TableCell,{component:"th",scope:"row"},e.getLabel()),r.createElement(b.TableCell,{align:"right"},e.getLocation()),r.createElement(b.TableCell,{align:"right"},h(e.getTrackId())||"N/A"),r.createElement(b.TableCell,{align:"right"},r.createElement(b.Button,{onClick:function(){g(e.getLocation()),i()},color:"primary",variant:"contained"},"Go to location")),r.createElement(b.TableCell,{align:"right"},r.createElement(b.Button,{onClick:function(){g(e.getLocation());var t=e.getTrackId();t&&o.showTrack(t),i()},disabled:!h(e.getTrackId()),color:"primary",variant:"contained"},"Show Track")))}))))))),r.createElement(b.Divider,null),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){i()},color:"primary"},"Cancel")))}var rr=b.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),nr=w.observer((function(e){return r.createElement(b.Typography,{variant:"h6",color:"error"},"".concat(e.error))})),or=w.observer((function(e){var n,o,a=e.model,i=rr(),l=s.getSession(a),c=l.assemblyNames,u=l.assemblyManager,d=l.textSearchManager,f=a.rankSearchResults,p=a.isSearchDialogDisplayed,m=a.error,g=Pe(t.useState(c[0]),2),h=g[0],v=g[1],y=Pe(t.useState(m),2),k=y[0],w=y[1],x=c.length?"":"No configured assemblies",E=a.searchScope(h),S=u.get(h),C=(null==S?void 0:S.regions)||[],P=(c.length?null==S?void 0:S.error:"No configured assemblies")||k,T=Pe(t.useState(),2),B=T[1],R=T[0]||new _.RefSequenceResult({refName:null===(n=C[0])||void 0===n?void 0:n.refName,label:null===(o=C[0])||void 0===o?void 0:o.refName}),N=null==R?void 0:R.getLocation();function M(e){return L.apply(this,arguments)}function L(){return(L=ye(De.mark((function e(t){return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d||console.warn("No text search manager"),e.next=3,null==d?void 0:d.search({queryString:t.toLowerCase(),searchType:"exact"},E,f);case 3:return e.abrupt("return",St(e.sent));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function D(){return(D=ye(De.mark((function e(t){var r,n,o,i;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(R){e.next=2;break}return e.abrupt("return");case 2:if(r=R.getTrackId(),n=t||R.getLocation()||"",e.prev=4,null==S||null===(o=S.refNames)||void 0===o||!o.includes(n)){e.next=9;break}a.navToLocString(n,h),e.next=20;break;case 9:return e.next=11,M(t);case 11:if(!((i=e.sent)&&i.length>1)){e.next=17;break}return a.setSearchResults(i,t.toLowerCase()),e.abrupt("return");case 17:1===(null==i?void 0:i.length)&&(n=i[0].getLocation(),r=i[0].getTrackId());case 18:a.navToLocString(n,h),r&&a.showTrack(r);case 20:e.next=26;break;case 22:e.prev=22,e.t0=e.catch(4),console.error(e.t0),l.notify("".concat(e.t0),"warning");case 26:case"end":return e.stop()}}),e,null,[[4,22]])})))).apply(this,arguments)}return r.createElement("div",null,P?r.createElement(nr,{error:P}):null,r.createElement(b.Container,{className:i.importFormContainer},r.createElement("form",{onSubmit:function(e){e.preventDefault()}},r.createElement(b.Grid,{container:!0,spacing:1,justifyContent:"center",alignItems:"center"},r.createElement(b.Grid,{item:!0},r.createElement(ce,{onChange:function(e){w(void 0),v(e)},session:l,selected:h})),r.createElement(b.Grid,{item:!0},h?P?r.createElement(b.Typography,{color:"error"},"X"):N&&a.volatileWidth?r.createElement(ut,{model:a,assemblyName:x?void 0:h,value:N,onSelect:function(e){B(e)},TextFieldProps:{margin:"normal",variant:"outlined",helperText:"Enter a sequence or location"}}):r.createElement(b.CircularProgress,{role:"progressbar",size:20,disableShrink:!0}):null),r.createElement(b.Grid,{item:!0},r.createElement(b.Button,{type:"submit",disabled:!N,className:i.button,onClick:function(){a.setError(void 0),N&&function(e){D.apply(this,arguments)}(N)},variant:"contained",color:"primary"},"Open"),r.createElement(b.Button,{disabled:!N,className:i.button,onClick:function(){a.setError(void 0),a.showAllRegionsInAssembly(h)},variant:"contained",color:"secondary"},"Show all regions in assembly"))))),p?r.createElement(tr,{model:a,optAssemblyName:h,handleClose:function(){a.setSearchResults(void 0,void 0)}}):null)})),ar=w.observer((function(e){var n=e.model,o=n.bpPerPx,a=n.maxBpPerPx,i=n.minBpPerPx,l=n.scaleFactor,c=Pe(t.useState(),2),s=c[0],u=c[1];return r.createElement(r.Fragment,null,r.createElement(ee,{style:{background:"#aaa7"}},r.createElement(K,{color:"secondary",onClick:function(e){u(e.currentTarget)}},r.createElement(se,null)),r.createElement(K,{"data-testid":"zoom_out",onClick:function(){n.zoom(2*o)},disabled:o>=a-1e-4||1!==l,color:"secondary"},r.createElement($,null)),r.createElement(K,{"data-testid":"zoom_in",onClick:function(){n.zoom(n.bpPerPx/2)},disabled:o<=i+1e-4||1!==l,color:"secondary"},r.createElement(z,null))),r.createElement(ue,{anchorEl:s,open:Boolean(s),onMenuItemClick:function(e,t){t(),u(void 0)},onClose:function(){u(void 0)},menuItems:n.menuItems()}))})),ir=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 lr(e,t,r){return cr.apply(this,arguments)}function cr(){return(cr=ye(De.mark((function e(t,r,o){var a,i,l,c,u,d,f;return De.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=n.readConfObject(d.configuration,["sequence","adapter"]),e.next=15,Promise.all(r.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 sr(e){var n=e.model,o=e.handleClose,a=ir(),i=s.getSession(n),l=Pe(t.useState(),2),c=l[0],u=l[1],d=Pe(t.useState(),2),f=d[0],p=d[1],m=Boolean(void 0===f),g=n.leftOffset,h=n.rightOffset,v=t.useMemo((function(){return n.getSelectedRegions(g,h)}),[n,g,h]);t.useEffect((function(){var e=!0,t=new AbortController;return ye(De.mark((function r(){var o;return De.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(r.prev=0,!(v.length>0)){r.next=8;break}return r.next=4,lr(n,v,t.signal);case 4:o=r.sent,e&&p(pe.formatSeqFasta(o.filter((function(e){return!!e})).map((function(e){var t=e.get("seq"),r=e.get("refName"),n=e.get("start")+1,o=e.get("end"),a="".concat(r,":").concat(n,"-").concat(o);if((null==t?void 0:t.length)!==o-n+1)throw new Error("".concat(a," returned ").concat(t.length.toLocaleString()," bases, but should have returned ").concat((o-n).toLocaleString()));return{header:a,seq:t}})))),r.next=9;break;case 8:throw new Error("Selected region is out of bounds");case 9:r.next=15;break;case 11:r.prev=11,r.t0=r.catch(0),console.error(r.t0),e&&u(r.t0);case 15:case"end":return r.stop()}}),r,null,[[0,11]])})))(),function(){t.abort(),e=!1}}),[n,i,v,p]);var y=!!f&&f.length>1e6;return r.createElement(b.Dialog,{"data-testid":"sequence-dialog",maxWidth:"xl",open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Reference sequence",o?r.createElement(b.IconButton,{"data-testid":"close-seqDialog",className:a.closeButton,onClick:function(){o(),n.setOffsets(void 0,void 0)}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,c?r.createElement(b.Typography,{color:"error"},"".concat(c)):null,m&&!c?r.createElement(b.Container,null,"Retrieving reference sequence...",r.createElement(b.CircularProgress,{style:{marginLeft:10},size:20,disableShrink:!0})):null,r.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}}})),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){de(f||""),i.notify("Copied to clipboard","success")},disabled:m||!!c||y,color:"primary",startIcon:r.createElement(L.ContentCopy,null)},"Copy to clipboard"),r.createElement(b.Button,{onClick:function(){var e=new Blob([f||""],{type:"text/x-fasta;charset=utf-8"});A.saveAs(e,"jbrowse_ref_seq.fa")},disabled:m||!!c,color:"primary",startIcon:r.createElement(fe,null)},"Download FASTA"),r.createElement(b.Button,{onClick:o,color:"primary",autoFocus:!0},"Close")))}var ur=w.observer(sr),dr=E.makeStyles((function(){return{majorTickLabel:{fontSize:"11px"},majorTick:{stroke:"#555"},minorTick:{stroke:"#999"}}}));function fr(e){var t=e.start,n=e.end,o=e.bpPerPx,a=e.reversed,i=e.major,l=e.minor,c=dr(),s=ft(t,n,o,i,l);return r.createElement(r.Fragment,null,s.map((function(e){var i=(a?n-e.base:e.base-t)/o;return r.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 r.createElement("text",{x:(a?n-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))})))}fr.propTypes={start:Z.number.isRequired,end:Z.number.isRequired,bpPerPx:Z.number.isRequired,reversed:Z.bool,major:Z.bool,minor:Z.bool},fr.defaultProps={reversed:!1,major:!0,minor:!0};var pr=w.observer(fr),mr=b.makeStyles((function(e){return{errorMessage:{textAlign:"center",paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},spacer:{marginRight:e.spacing(2)}}}));function gr(e){var t,n=e.model,o=e.fontSize,a=n.offsetPx,i=n.dynamicBlocks,l=i.totalWidthPxWithoutBorders,c=i.totalBp;t=Math.floor(c/1e6)>0?"".concat(parseFloat((c/1e6).toPrecision(3)),"Mbp"):Math.floor(c/1e3)>0?"".concat(parseFloat((c/1e3).toPrecision(3)),"Kbp"):"".concat(Math.floor(c),"bp");var s=Math.max(-a,0),u=s+l;return r.createElement(r.Fragment,null,r.createElement("line",{x1:s,x2:u,y1:10,y2:10,stroke:"black"}),r.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),r.createElement("line",{x1:u,x2:u,y1:5,y2:15,stroke:"black"}),r.createElement("text",{x:s+(u-s)/2,y:2*o,textAnchor:"middle",fontSize:o},t))}function hr(e){var t=e.model,n=e.fontSize,o=t.dynamicBlocks.contentBlocks,a=t.offsetPx,i=t.bpPerPx,l=o.length<5;return r.createElement(r.Fragment,null,r.createElement("defs",null,r.createElement("clipPath",{id:"clip-ruler"},r.createElement("rect",{x:0,y:0,width:e.width,height:20}))),o.map((function(e){var t=e.offsetPx-a;return r.createElement("g",{key:"".concat(e.key),transform:"translate(".concat(t," 0)")},r.createElement("text",{x:t/i,y:n,fontSize:n},e.refName),l?r.createElement("g",{transform:"translate(0 20)",clipPath:"url(#clip-ruler)"},r.createElement(pr,{start:e.start,end:e.end,bpPerPx:i,reversed:e.reversed})):r.createElement("line",{strokeWidth:1,stroke:"black",x1:e.start/i,x2:e.end/i,y1:20,y2:20}))})))}var vr=function(e){return e.reduce((function(e,t){return e+t.displays[0].height+20+20}),0)},yr=function(e){var t=e.model,n=t.width,o=t.assemblyNames;return r.createElement("g",{id:"header"},r.createElement("text",{x:0,y:15,fontSize:15},o.length>1?"":o[0]),r.createElement("g",{transform:"translate(0 ".concat(15,")")},r.createElement(gr,{model:t,fontSize:15})),r.createElement("g",{transform:"translate(0 ".concat(50,")")},r.createElement(hr,{model:t,fontSize:15,width:n})))},br=function(e){var t=e.model,n=t.dynamicBlocks,o=vr(t.tracks);return r.createElement(r.Fragment,null,n.contentBlocks.slice(1).map((function(e){return r.createElement("line",{key:e.key,x1:e.offsetPx-t.offsetPx,x2:e.offsetPx-t.offsetPx,y1:110,y2:o,stroke:"black",strokeOpacity:.3})})))};function kr(e){var t=e.model,o=e.offset;return r.createElement(r.Fragment,null,e.displayResults.map((function(e){var a=e.track,i=e.result,l=o,c=n.getConf(a,"name")||"Reference sequence (".concat(n.readConfObject(y.getParent(a.configuration),"name"),")");return o+=a.displays[0].height+20+20,r.createElement("g",{key:a.configuration.trackId,transform:"translate(0 ".concat(l,")")},r.createElement("text",{fontSize:15,x:Math.max(-t.offsetPx,0)},c),r.createElement("g",{transform:"translate(0 ".concat(20,")")},i))})))}function wr(e,t){return xr.apply(this,arguments)}function xr(){return(xr=ye(De.mark((function e(t,n){var o,a,i,l,c,s;return De.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=110,c=vr(a=t.tracks)+l,e.next=8,Promise.all(a.map(function(){var e=ye(De.mark((function e(t){var r;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.displays[0],e.next=3,v.when((function(){return void 0===r.ready||r.ready}));case 3:return e.next=5,r.renderSvg(n);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(r.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()},r.createElement("rect",{width:o+2*i,height:c,fill:"white"}),r.createElement("g",{stroke:"none",transform:"translate(".concat(i," ").concat(15,")")},r.createElement(yr,{model:t}),r.createElement(kr,{model:t,displayResults:s,offset:l}),r.createElement(br,{model:t})))));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Er={__proto__:null,default:w.observer((function(e){var t=e.model,n=t.tracks,o=t.error,a=t.hideHeader,i=t.initialized,l=t.hasDisplayedRegions,c=mr();return i||o?!l||o?r.createElement(or,{model:t}):r.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?r.createElement(ur,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?r.createElement(tr,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?r.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},r.createElement(ar,{model:t})):r.createElement(Rt,{model:t}),r.createElement($t,{model:t},n.length?n.map((function(e){return r.createElement(It,{key:e.id,model:t,track:e})})):r.createElement(b.Paper,{variant:"outlined",className:c.errorMessage},r.createElement(b.Typography,null,"No tracks active."),r.createElement(b.Button,{variant:"contained",color:"primary",onClick:t.activateTrackSelector,style:{zIndex:1e3}},r.createElement(L.TrackSelector,{className:c.spacer}),"Open track selector")))):null})),renderToSvg:wr},Sr=E.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Cr(e){var n,o=e.model,a=e.handleClose,i="undefined"!=typeof OffscreenCanvas,l=Pe(t.useState(i),2),c=l[0],s=l[1],u=Pe(t.useState(!1),2),d=u[0],f=u[1],p=Pe(t.useState(),2),m=p[0],g=p[1],h=Sr();return r.createElement(b.Dialog,{open:!0,onClose:a},r.createElement(b.DialogTitle,null,"Export SVG",r.createElement(b.IconButton,{className:h.closeButton,onClick:a},r.createElement(ne,null))),r.createElement(b.DialogContent,null,m?r.createElement("div",{style:{color:"red"}},"".concat(m)):d?r.createElement("div",null,r.createElement(b.CircularProgress,{size:20,style:{marginRight:20}}),r.createElement(b.Typography,{display:"inline"},"Creating SVG")):null,i?r.createElement(b.FormControlLabel,{control:r.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"}):r.createElement(b.Typography,null,"Note: rasterizing layers not yet supported in this browser, so SVG size may be large")),r.createElement(b.DialogActions,null,r.createElement(b.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),r.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",onClick:(n=ye(De.mark((function e(){return De.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 n.apply(this,arguments)})},"Submit")))}var Pr=E.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Tr(e){var t=e.model,n=e.handleClose,o=Pr();return r.createElement(b.Dialog,{maxWidth:"xl",open:!0,onClose:n},r.createElement(b.DialogTitle,null,"Reference sequence",n?r.createElement(b.IconButton,{className:o.closeButton,onClick:function(){n()}},r.createElement(ne,null)):null),r.createElement(b.Divider,null),r.createElement(b.DialogContent,null,r.createElement(b.Typography,null,"Are you sure you want to return to the import form? This will lose your current view")),r.createElement(b.DialogActions,null,r.createElement(b.Button,{onClick:function(){t.clearView(),n()},variant:"contained",color:"primary",autoFocus:!0},"OK"),r.createElement(b.Button,{onClick:function(){n()},color:"secondary",variant:"contained",autoFocus:!0},"Cancel")))}var Br=w.observer(Tr);function Rr(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(ge(ge({},e),{},{start:Math.round(e.start),end:Math.round(e.end),assemblyName:t?void 0:e.assemblyName}))})).join(";")}var Nr=48,Mr=20,Lr=17,Dr=3;function Ir(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})).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 r;return null===(r=t.get(e))||void 0===r?void 0:r.error})).filter((function(e){return!!e})).join(", ")},get assembliesInitialized(){var t=s.getSession(e).assemblyManager;return this.assemblyNames.every((function(e){var r;return null===(r=t.get(e))||void 0===r?void 0:r.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 Lr+Dr},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?Nr:Nr+Mr},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*Dr},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 ge(ge({},p.getParentRenderProps(e)),{},{bpPerPx:e.bpPerPx,highResolutionScaling:n.getConf(s.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){var r=t.refName,n=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 r===t.refName&&n>=t.start&&n<=t.end&&(!o||o===c)?(a+=t.reversed?t.end-n:n-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 r=0,n=(e.offsetPx+t)*e.bpPerPx,o=e.displayedRegions.length;if(n<0){var a=e.displayedRegions[0],i=n;return ge(ge({},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=n-r;if(d+r>n&&r<=n)return ge(ge({},y.getSnapshot(u)),{},{oob:!1,offset:f,coord:u.reversed?Math.floor(u.end-f)+1:Math.floor(u.start+f)+1,index:s});r+=u.end-u.start>c&&f/e.bpPerPx>0&&f/e.bpPerPx<e.width?d+l:d}if(n>=r){var p=e.displayedRegions[o-1],m=n-r+(p.end-p.start);return ge(ge({},y.getSnapshot(p)),{},{oob:!0,offset:m,coord:p.reversed?Math.floor(p.end-m)+1:Math.floor(p.start+m)+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 r=e.tracks.map((function(e){return e.configuration.trackId}));return t.forEach((function(e){r!==[]&&r.includes(e.trackId)&&e.updateScore(e.getScore()+1)})),t},rewriteOnClicks:function(t,r){var n=this;r.forEach((function(r){if("subMenu"in r&&n.rewriteOnClicks(t,r.subMenu),"onClick"in r){var o=r.onClick;r.onClick=function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];e.tracks.forEach((function(e){e.type===t&&o.apply(e,[e].concat(n))}))}}}))},get trackTypeActions(){var t=this,r=new Map;return e.tracks.forEach((function(e){if(!r.get(e.type)){var n=q(e.viewMenuActions);t.rewriteOnClicks(e.type,n),r.set(e.type,n)}})),r},get centerLineInfo(){return e.displayedRegions.length?this.pxToBp(e.width/2):void 0}}})).actions((function(t){return{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 r=s.clamp(e,t.minOffset,t.maxOffset);return t.offsetPx=r,r},zoomTo:function(e){var r=s.clamp(e,t.minBpPerPx,t.maxBpPerPx);if(r===t.bpPerPx)return r;var n=t.bpPerPx;if(t.bpPerPx=r,Math.abs(n-r)<1e-6)return console.warn("zoomTo bpPerPx rounding error"),n;var o=t.width;return this.scrollTo(Math.round((t.offsetPx+o/2)*n/r-o/2)),r},setOffsets:function(e,r){t.leftOffset=e,t.rightOffset=r},setSearchResults:function(e,r){t.searchResults=e,t.searchQuery=r},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 ge(ge({},e),{},{reversed:!e.reversed})}))),this.scrollTo(t.totalBp/t.bpPerPx-t.offsetPx-t.width)},showTrack:function(r){var n=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),r);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(ge(ge({},n),{},{type:i.type,configuration:i,displays:[ge({type:u.type,configuration:u},o)]}));return t.tracks.push(f),f}return d[0]},hideTrack:function(r){var n=e.pluggableConfigSchemaType("track"),o=y.resolveIdentifier(n,y.getRoot(t),r),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,r){var n=e.tracks.findIndex((function(e){return e.id===t}));if(-1===n)throw new Error("Track ID ".concat(t," not found"));var o=e.tracks.findIndex((function(e){return e.id===r}));if(-1===o)throw new Error("Track ID ".concat(r," not found"));var a=y.getSnapshot(e.tracks[n]);e.tracks.splice(n,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 r=t.addWidget("HierarchicalTrackSelectorWidget","hierarchicalTrackSelector",{view:e});return t.showWidget(r),r}}throw new Error("invalid track selector type ".concat(e.trackSelectorType))},navToLocString:function(t,r){var n=s.getSession(e).assemblyManager,o=n.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=r,c="";0!==e.displayedRegions.length&&(l=e.displayedRegions[0].assemblyName,c=e.displayedRegions[0].refName);var u=l&&n.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)})),p=!1;if(f.assemblyName&&f.assemblyName!==l){var m=n.get(f.assemblyName);if(!m)throw new Error("Could not find assembly ".concat(f.assemblyName));u=m,p=!0;var g=m.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(p||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),x=s.clamp(null!==(k=null==f?void 0:f.end)&&void 0!==k?k:y.end,0,y.end);this.navTo(ge(ge({},f),{},{start:w,end:x}))}}},navTo:function(e){this.navToMultiple([e])},navToMultiple:function(t){var r=t[0],n=r.refName,o=r.start,a=r.end,i=r.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(n);u&&(n=u)}for(var d,f=o,p=a,m=!1,g=function(e){if(n===e.refName){if(m=!0,void 0===f&&(f=e.start),void 0===p&&(p=e.end),f>=e.start&&f<=e.end&&p<=e.end&&p>=e.start)return!0;f=o,p=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),!m)throw new Error('could not find a region with refName "'.concat(n,'"'));if(void 0===f)throw new Error('could not find a region with refName "'.concat(n,'" that contained an end position ').concat(p));if(void 0===p)throw new Error('could not find a region with refName "'.concat(n,'" 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(r),'"'));if(1===t.length){var y=e.displayedRegions[d];return void this.moveTo({index:d,offset:y.reversed?y.end-p:f-y.start},{index:d,offset:y.reversed?y.end-f:p-y.start})}for(var b=0,k=0,w=0;b<t.length;b++){var x=t[b],E=e.displayedRegions[d+b];if(k=x.start||E.start,w=x.end||E.end,x.refName!==E.refName)throw new Error("Entered location ".concat(s.assembleLocString(x)," does not match with displayed regions"));if(b>0&&!(E.reversed?w===E.end:k===E.start))throw new Error("".concat(E.reversed?"End":"Start"," of region ").concat(s.assembleLocString(x)," should be ").concat((E.reversed?E.end:E.start+1).toLocaleString("en-US"),", but it is not"));if(b!==t.length-1&&!(E.reversed?k===E.start:w===E.end))throw new Error("".concat(E.reversed?"Start":"End"," of region ").concat(s.assembleLocString(x)," should be ").concat((E.reversed?E.start+1:E.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-p: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,r){if(void 0!==t&&void 0!==r){if(t.refName===r.refName&&t.index===r.index&&r.offset<t.offset||t.index>r.index){var n=[r,t];t=n[0],r=n[1]}var o={start:t.start,end:t.end,index:t.index,offset:t.offset},a={start:r.start,end:r.end,index:r.index,offset:r.offset};o&&a?this.moveTo(o,a):s.getSession(e).notify("No regions found to navigate to","warning")}},getSelectedRegions:function(t,r){var n=M.create(ge(ge({},y.getSnapshot(e)),{},{interRegionPaddingWidth:e.interRegionPaddingWidth}));return n.setVolatileWidth(e.width),n.zoomToDisplayedRegions(t,r),n.dynamicBlocks.contentBlocks.map((function(e){return ge(ge({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},afterDisplayedRegionsSet:function(t){e.afterDisplayedRegionsSetCallbacks.push(t)},moveTo:function(t,r){var n=0;if(t.index===r.index)n+=r.offset-t.offset;else{var o=e.displayedRegions[t.index];if(n+=o.end-o.start-t.offset,r.index-t.index>=2)for(var a=t.index+1;a<r.index;a+=1)n+=e.displayedRegions[a].end-e.displayedRegions[a].start;n+=r.offset}var i=n/(e.width-e.interRegionPaddingWidth*(r.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 r=e.offsetPx;return e.scrollTo(e.offsetPx+t)-r},centerAt:function(t,r,n){var o=e.bpToPx({refName:r,coord:t,regionNumber:n});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 r=s.getSession(e),n=r.assemblyManager;if(!t){var o=Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))));if(o.length>1)return void r.notify("Can't perform this with multiple assemblies currently");t=Pe(o,1)[0]}var a=n.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(r){var n=Pe(s.springAnimate(e.offsetPx,e.offsetPx+e.width*r,e.scrollTo),2),o=n[0],a=n[1];t(),t=a,o()}}})).actions((function(e){var t=function(){};return{zoom:function(r){if(e.zoomTo(e.bpPerPx),!(r<e.bpPerPx&&e.bpPerPx===e.minBpPerPx||r>e.bpPerPx&&e.bpPerPx===e.maxBpPerPx)){var n=Pe(s.springAnimate(1,e.bpPerPx/r,e.setScaleFactor,(function(){e.zoomTo(r),e.setScaleFactor(1)})),2),o=n[0],a=n[1];t(),t=a,o()}}}})).views((function(e){var t,r="";return{menuItems:function(){var t,r=[{label:"Return to import form",onClick:function(){s.getSession(e).queueDialog((function(t){return[Br,{model:e,handleClose:t}]}))},icon:F},{label:"Export SVG",icon:j,onClick:function(){s.getSession(e).queueDialog((function(t){return[Cr,{model:e,handleClose:t}]}))}},{label:"Open track selector",onClick:e.activateTrackSelector,icon:L.TrackSelector},{label:"Horizontally flip",icon:D,onClick:e.horizontallyFlip},{type:"divider"},{label:"Show all regions in assembly",icon:I,onClick:e.showAllRegionsInAssembly},{label:"Show center line",icon:I,type:"checkbox",checked:e.showCenterLine,onClick:e.toggleCenterLine},{label:"Show header",icon:I,type:"checkbox",checked:!e.hideHeader,onClick:e.toggleHeader},{label:"Show header overview",icon:I,type:"checkbox",checked:!e.hideHeaderOverview,onClick:e.toggleHeaderOverview,disabled:e.hideHeader},{label:"Track labels",icon:O,subMenu:[{label:"Overlapping",icon:I,type:"radio",checked:"overlapping"===e.trackLabels,onClick:function(){return e.setTrackLabels("overlapping")}},{label:"Offset",icon:I,type:"radio",checked:"offset"===e.trackLabels,onClick:function(){return e.setTrackLabels("offset")}},{label:"Hidden",icon:I,type:"radio",checked:"hidden"===e.trackLabels,onClick:function(){return e.setTrackLabels("hidden")}}]}],n=Ne(e.trackTypeActions.entries());try{for(n.s();!(t=n.n()).done;){var o=Pe(t.value,2),a=o[1];a.length&&(r.push({type:"divider"},{type:"subHeader",label:o[0]}),a.forEach((function(e){r.push(e)})))}}catch(e){n.e(e)}finally{n.f()}return r},get staticBlocks(){var n=N(e),o=JSON.stringify(n);return r!==o&&(t=n,r=o),t},get dynamicBlocks(){return R(e)},get roundedDynamicBlocks(){return this.dynamicBlocks.contentBlocks.map((function(e){return ge(ge({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},get visibleLocStrings(){return Rr(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return Rr(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 ye(De.mark((function r(){var n,o;return De.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=t.length>0&&void 0!==t[0]?t[0]:{},r.next=3,wr(e,n);case 3:o=new Blob([r.sent],{type:"image/svg+xml"}),A.saveAs(o,"image.svg");case 6:case"end":return r.stop()}}),r)})))()}}})).views((function(e){return{rubberBandMenuItems:function(){return[{label:"Zoom to region",icon:z,onClick:function(){e.leftOffset&&e.rightOffset&&e.moveTo(e.leftOffset,e.rightOffset)}},{label:"Get sequence",icon:h,onClick:function(){e.setSequenceDialogOpen(!0)}}]}}}))}var Or=t.lazy((function(){return Promise.resolve().then((function(){return Hr}))})),Fr=function(e){return y.types.compose("LinearBasicDisplay",nt,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:n.ConfigurationReference(e)})).views((function(e){return{get rendererTypeName(){return n.getConf(e,["renderer","type"])},get showLabels(){var t=n.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowLabels?e.trackShowLabels:t},get showDescriptions(){var t=n.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowDescriptions?e.trackShowDescriptions:t},get maxHeight(){var t=n.getConf(e,["renderer","maxHeight"]);return void 0!==e.trackMaxHeight?e.trackMaxHeight:t},get displayMode(){var t=n.getConf(e,["renderer","displayMode"]);return void 0!==e.trackDisplayMode?e.trackDisplayMode:t},get rendererConfig(){var t=n.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create(ge(ge({},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,r=e.renderProps;return{renderProps:function(){var t=e.rendererConfig;return ge(ge({},r()),{},{config:t})},trackMenuItems:function(){return[].concat(Te(t()),[{label:"Show labels",icon:I,type:"checkbox",checked:e.showLabels,onClick:function(){e.toggleShowLabels()}},{label:"Show descriptions",icon:I,type:"checkbox",checked:e.showDescriptions,onClick:function(){e.toggleShowDescriptions()}},{label:"Display mode",icon:I,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[Or,{model:e,handleClose:t}]}))}}])}}}))};function jr(e){return n.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:Me,explicitlyTyped:!0})}var zr=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}}),t&&xe(e,t)}(f,c);var r,d=Ce(f);function f(){var e;return be(this,f),(e=d.apply(this,arguments)).name="LinearGenomeViewPlugin",e.exports={BaseLinearDisplayComponent:Ge,BaseLinearDisplay:nt,baseLinearDisplayConfigSchema:Me},e}return(r=[{key:"install",value:function(e){e.addTrackType((function(){var t=n.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=n.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=ot(e);return new i({name:"LinearBareDisplay",configSchema:t,stateModel:at(t),trackType:"BasicTrack",viewType:"LinearGenomeView",ReactComponent:Ge})})),e.addDisplayType((function(){var t=jr(e);return new i({name:"LinearBasicDisplay",configSchema:t,stateModel:Fr(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Ge})})),e.addViewType((function(){return new l({name:"LinearGenomeView",stateModel:Ir(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return Er}))}))})}))}},{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 r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(f.prototype,r),f}(),qr=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 Ar(e){var n=e.model,o=e.handleClose,a=qr(),i=n.maxHeight,l=Pe(t.useState("".concat(void 0===i?"":i)),2),c=l[0],s=l[1];return r.createElement(b.Dialog,{open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.createElement(b.DialogTitle,{id:"alert-dialog-title"},"Filter options",r.createElement(b.IconButton,{"aria-label":"close",className:a.closeButton,onClick:o},r.createElement(ne,null))),r.createElement(b.DialogContent,null,r.createElement("div",{className:a.root},r.createElement(b.Typography,null,"Set max height for the track"),r.createElement(b.TextField,{value:c,onChange:function(e){s(e.target.value)},placeholder:"Enter max score"}),r.createElement(b.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){n.setMaxHeight(""===c||Number.isNaN(+c)?void 0:+c),o()}},"Submit"))))}var Hr={__proto__:null,default:w.observer(Ar)};exports.BaseLinearDisplay=nt,exports.BaseLinearDisplayComponent=Ge,exports.RefNameAutocomplete=ut,exports.baseLinearDisplayConfigSchema=Me,exports.default=zr,exports.linearBareDisplayConfigSchemaFactory=ot,exports.linearBasicDisplayConfigSchemaFactory=jr,exports.linearBasicDisplayModelFactory=Fr,exports.renderToSvg=wr;
2
2
  //# sourceMappingURL=plugin-linear-genome-view.cjs.production.min.js.map