@jbrowse/plugin-linear-genome-view 1.4.4 → 1.5.3

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