@jbrowse/plugin-data-management 1.4.1 → 1.5.2

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 (37) hide show
  1. package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -1
  2. package/dist/AddTrackWidget/model.d.ts +1 -363
  3. package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +1 -1
  4. package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
  5. package/dist/SetDefaultSession/SetDefaultSession.d.ts +4 -6
  6. package/dist/index.d.ts +8 -12
  7. package/dist/plugin-data-management.cjs.development.js +627 -501
  8. package/dist/plugin-data-management.cjs.development.js.map +1 -1
  9. package/dist/plugin-data-management.cjs.production.min.js +1 -1
  10. package/dist/plugin-data-management.cjs.production.min.js.map +1 -1
  11. package/dist/plugin-data-management.esm.js +614 -507
  12. package/dist/plugin-data-management.esm.js.map +1 -1
  13. package/package.json +3 -2
  14. package/src/AddConnectionWidget/components/AddConnectionWidget.test.js +3 -8
  15. package/src/AddTrackWidget/components/AddTrackWidget.test.js +2 -3
  16. package/src/AddTrackWidget/components/AddTrackWidget.tsx +4 -2
  17. package/src/AddTrackWidget/components/ConfirmTrack.tsx +160 -88
  18. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +30 -23
  19. package/src/AddTrackWidget/components/__snapshots__/AddTrackWidget.test.js.snap +157 -124
  20. package/src/AddTrackWidget/index.test.jsx +78 -26
  21. package/src/AddTrackWidget/model.ts +5 -14
  22. package/src/AssemblyManager/AssemblyAddForm.tsx +7 -6
  23. package/src/AssemblyManager/AssemblyManager.test.tsx +1 -0
  24. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +27 -17
  25. package/src/HierarchicalTrackSelectorWidget/model.js +3 -2
  26. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +164 -56
  27. package/src/PluginStoreWidget/components/InstalledPlugin.tsx +10 -2
  28. package/src/PluginStoreWidget/components/PluginCard.tsx +7 -9
  29. package/src/PluginStoreWidget/components/PluginStoreWidget.test.js +9 -10
  30. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +36 -26
  31. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.js.snap +89 -51
  32. package/src/SetDefaultSession/SetDefaultSession.test.tsx +7 -81
  33. package/src/SetDefaultSession/SetDefaultSession.tsx +51 -162
  34. package/src/index.ts +1 -51
  35. package/src/ucsc-trackhub/configSchema.js +4 -1
  36. package/src/ucsc-trackhub/model.js +31 -31
  37. package/src/ucsc-trackhub/ucscTrackHub.js +40 -12
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),n=e(t),r=e(require("@jbrowse/core/pluggableElementTypes/ConnectionType")),a=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),o=e(require("@jbrowse/core/Plugin")),i=require("@jbrowse/core/util"),l=e(require("@material-ui/icons/NoteAdd")),c=e(require("@material-ui/icons/Input")),u=e(require("@material-ui/icons/Extension")),s=require("@jbrowse/core/pluggableElementTypes/models"),d=require("@jbrowse/core/configuration"),m=require("mobx-state-tree"),f=require("@gmod/ucsc-hub"),p=require("@jbrowse/core/util/io"),g=require("@jbrowse/core/util/tracks"),h=require("@jbrowse/core/util/types/mst"),y=require("mobx-react"),v=require("@material-ui/core"),b=e(require("@material-ui/icons/ExpandMore")),E=e(require("@material-ui/icons/Clear")),k=e(require("@material-ui/icons/InfoOutlined")),C=require("@material-ui/core/styles"),w=e(require("@material-ui/icons/Close")),T=e(require("@material-ui/icons/Lock")),x=require("@jbrowse/core/util/types"),S=e(require("@material-ui/icons/Person")),L=e(require("@material-ui/icons/Add")),A=e(require("@material-ui/icons/Check")),N=e(require("@material-ui/core/Dialog")),D=e(require("@material-ui/core/DialogTitle")),I=e(require("@material-ui/core/TextField")),B=e(require("@material-ui/core/Button")),P=e(require("@material-ui/core/IconButton")),j=e(require("@material-ui/core/DialogContent")),M=e(require("@material-ui/core/DialogActions")),O=e(require("@material-ui/core/List")),F=e(require("@material-ui/core/ListItem")),W=e(require("@material-ui/core/ListItemIcon")),q=e(require("@material-ui/core/ListItemText")),_=e(require("@material-ui/core/ListSubheader")),R=e(require("@material-ui/core/Paper")),U=e(require("@material-ui/core/Typography")),H=e(require("@material-ui/core/Radio")),z=e(require("pluralize")),G=e(require("@material-ui/icons/ArrowBackIos")),V=e(require("@material-ui/icons/Create")),J=e(require("@material-ui/icons/Delete")),Y=e(require("@jbrowse/core/ui/FileSelector")),K=require("@jbrowse/plugin-config"),Q=e(require("@material-ui/icons/ArrowDropDown")),X=e(require("@material-ui/icons/ArrowRight")),$=e(require("@material-ui/icons/Menu")),Z=e(require("@material-ui/icons/MoreHoriz")),ee=e(require("@material-ui/icons/PowerOutlined")),te=e(require("react-virtualized-auto-sizer")),ne=e(require("@jbrowse/core/ui/Menu")),re=require("react-vtree"),ae=e(require("@material-ui/core/Link")),oe=e(require("@material-ui/core/MenuItem")),ie=require("@jbrowse/core/ui"),le=require("@material-ui/lab"),ce=e(require("@material-ui/core/Step")),ue=e(require("@material-ui/core/StepContent")),se=e(require("@material-ui/core/StepLabel")),de=e(require("@material-ui/core/Stepper")),me=e(require("@material-ui/icons/OpenInNew"));function fe(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 pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fe(Object(n),!0).forEach((function(t){be(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ge(e){return(ge="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 he(e,t,n,r,a,o,i){try{var l=e[o](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,a)}function ye(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){he(o,r,a,i,l,"next",e)}function l(e){he(o,r,a,i,l,"throw",e)}i(void 0)}))}}function ve(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(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 ke(e,t){return(ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ce(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 we(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 a=Ee(this).constructor;n=Reflect.construct(r,arguments,a)}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,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}}(e,t)||Se(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 xe(e){return function(e){if(Array.isArray(e))return Le(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Se(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 Se(e,t){if(e){if("string"==typeof e)return Le(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)?Le(e,t):void 0}}function Le(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 Ae(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Se(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 o,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,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw o}}}}var Ne=d.ConfigurationSchema("UCSCTrackHubConnection",{hubTxtLocation:{type:"fileLocation",defaultValue:{uri:"http://mysite.com/path/to/hub.txt"},description:"location of the hub file (usually called hub.txt)"},assemblyNames:{type:"stringArray",defaultValue:[],description:"optional list of genomes to import from this track hub, if empty all genomes will be imported"}},{baseConfiguration:s.baseConnectionConfig});function De(e,t){return e(t={exports:{}},t.exports),t.exports}var Ie=De((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",o=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 a=Object.create((t&&t.prototype instanceof d?t:d).prototype),o=new w(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=E(i,n);if(l){if(l===s)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=u(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===s)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,o),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var s={};function d(){}function m(){}function f(){}var p={};p[a]=function(){return this};var g=Object.getPrototypeOf,h=g&&g(g(T([])));h&&h!==t&&n.call(h,a)&&(p=h);var y=f.prototype=d.prototype=Object.create(p);function v(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(a,o){function i(){return new t((function(r,i){!function r(a,o,i,l){var c=u(e[a],e,o);if("throw"!==c.type){var s=c.arg,d=s.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){s.value=e,i(s)}),(function(e){return r("throw",e,i,l)}))}l(c.arg)}(a,o,r,i)}))}return r=r?r.then(i,i):i()}}function E(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,E(e,t),"throw"===t.method))return s;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,s;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function T(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=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 o.next=o}}return{next:x}}function x(){return{value:void 0,done:!0}}return m.prototype=y.constructor=f,f.constructor=m,m.displayName=l(f,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),b.prototype[o]=function(){return this},e.AsyncIterator=b,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new b(c(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),l(y,i,"Generator"),y[a]=function(){return this},y.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=T,w.prototype={constructor:w,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(C),!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 a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,s):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),s},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),C(n),s}},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 a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}}));function Be(){return(Be=ye(Ie.mark((function e(t){return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,p.openLocation(t).readFile("utf8");case 3:return e.abrupt("return",new f.HubFile(e.sent));case 7:throw e.prev=7,e.t0=e.catch(0),new Error("Not a valid hub.txt file, got error: '".concat(e.t0,"'"));case 10:case"end":return e.stop()}}),e,null,[[0,7]])})))).apply(this,arguments)}function Pe(e){return je.apply(this,arguments)}function je(){return(je=ye(Ie.mark((function e(t){return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p.openLocation(t).readFile("utf8");case 2:return e.abrupt("return",new f.GenomesFile(e.sent));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Me(e){return Oe.apply(this,arguments)}function Oe(){return(Oe=ye(Ie.mark((function e(t){return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p.openLocation(t).readFile("utf8");case 2:return e.abrupt("return",new f.TrackDbFile(e.sent));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Fe(e,t,n,r){var a=[];return e.forEach((function(o,l){var c=Array.from(o.keys()),u=["superTrack","compositeTrack","container","view"];if(!c.some((function(e){return u.includes(e)}))){var s=[],d=l;do{if(d=e.get(d).get("parent")){var m=Te(d.split(" "),1);s.push(e.get(d=m[0]))}}while(d);s.reverse();var f=We(o,s.map((function(e){return e.get("shortLabel")})),t,e,r);f.trackId="ucsc-trackhub-".concat(i.objectHash(f)),f.assemblyNames=[n],a.push(f)}})),a}function We(e,t,n,r,a){var o=e.get("type");o||(o=r.get(e.get("parent")).get("type"));var i,l,c=o.split(" ")[0];switch("bam"===c&&e.get("bigDataUrl").toLowerCase().endsWith("cram")&&(c="cram"),i=n.uri?{uri:new URL(e.get("bigDataUrl"),n.uri).href}:{localPath:e.get("bigDataUrl")},c){case"bam":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href}:{uri:new URL("".concat(e.get("bigDataUrl"),".bai"),n.uri).href}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex")}:{localPath:"".concat(e.get("bigDataUrl"),".bai")},{type:"AlignmentsTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BamAdapter",bamLocation:i,index:{location:l}}};case"bed":case"bed5FloatScore":case"bedGraph":case"bedRnaElements":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"bigBarChart":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i},renderer:{type:"SvgFeatureRenderer"}};case"bigBed":case"bigGenePred":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i}};case"bigChain":case"bigInteract":case"bigMaf":case"bigPsl":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i},renderer:{type:"SvgFeatureRenderer"}};case"bigWig":return{type:"QuantitativeTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigWigAdapter",bigWigLocation:i}};case"broadPeak":case"coloredExon":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"cram":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href}:{uri:new URL("".concat(e.get("bigDataUrl"),".crai"),n.uri).href}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex")}:{localPath:"".concat(e.get("bigDataUrl"),".crai")},{type:"AlignmentsTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"CramAdapter",cramLocation:i,craiLocation:l,sequenceAdapter:a}};case"gvf":case"ld2":case"narrowPeak":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"bigNarrowPeak":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i}};case"peptideMapping":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"vcfTabix":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href}:{uri:new URL("".concat(e.get("bigDataUrl"),".tbi"),n.uri).href}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex")}:{localPath:"".concat(e.get("bigDataUrl"),".tbi")},{type:"VariantTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"VcfTabixAdapter",vcfGzLocation:i,index:{location:l}}};case"wig":case"wigMaf":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"hic":return{type:"HicTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"HicAdapter",hicLocation:i}};case"halSnake":return g.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);default:return g.generateUnknownTrackConf(e.get("shortLabel"),c,t)}}function qe(e){return m.types.compose("UCSCTrackHubConnection",s.BaseConnectionModelFactory(e),m.types.model({configuration:d.ConfigurationReference(Ne),type:m.types.literal("UCSCTrackHubConnection")}).actions((function(e){return{connect:function(){var t=d.readConfObject(e.configuration,"name"),n=d.readConfObject(e.configuration,"hubTxtLocation"),r=i.getSession(e);(function(e){return Be.apply(this,arguments)})(n).then((function(e){var t;return t=n.uri?{uri:new URL(e.get("genomesFile"),n.uri).href}:{localPath:e.get("genomesFile")},Promise.all([e,Pe(t)])})).then((function(a){var o,i=Te(a,2),l=i[0],c=[],u=Ae(i[1]);try{var s=function(){var a=Te(o.value,2),i=a[0],u=a[1],s=d.readConfObject(e.configuration,"assemblyNames");if(s.length>0&&!s.includes(i))return"break";var m,f=r.assemblies.find((function(e){return d.readConfObject(e,"name")===i}));if(!f)throw new Error('Cannot find assembly for "'.concat(i,'" from the genomes file for connection "').concat(t,'"'));m=n.uri?{uri:new URL(u.get("trackDb"),new URL(l.get("genomesFile"),n.uri)).href}:{localPath:u.get("trackDb")},c.push(Promise.all([m,Me(m),i,f]))};for(u.s();!(o=u.n()).done&&"break"!==s(););}catch(e){u.e(e)}finally{u.f()}return Promise.all([].concat(c))})).then((function(t){var n,r=Ae(t);try{for(r.s();!(n=r.n()).done;){var a=Te(n.value,4),o=Fe(a[1],a[0],a[2],d.readConfObject(a[3],["sequence","adapter"]));e.addTrackConfs(o)}}catch(e){r.e(e)}finally{r.f()}})).catch((function(t){console.error(t),r.notify('There was a problem connecting to the UCSC Track Hub "'.concat(e.name,'". Please make sure you have entered a valid hub.txt file. The error that was thrown is: "').concat(t,'"'),"error"),r.breakConnection(e.configuration)}))}}})))}function _e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{return new URL(e),!0}catch(t){return e.startsWith("/")}}function Re(e){var t="uri"in e?e.uri:void 0,n="localPath"in e?e.localPath:void 0,r="blobId"in e?e:void 0;return(null==r?void 0:r.name)||(null==t?void 0:t.slice(t.lastIndexOf("/")+1))||(null==n?void 0:n.slice(n.lastIndexOf("/")+1))||""}function Ue(e){return m.types.model("AddTrackModel",{id:h.ElementId,type:m.types.literal("AddTrackWidget"),view:m.types.safeReference(e.pluggableMstType("view","stateModel"))}).volatile((function(){return{trackSource:"fromFile",trackData:void 0,indexTrackData:void 0,altAssemblyName:"",altTrackName:"",altTrackType:"",adapterHint:""}})).actions((function(e){return{setAdapterHint:function(t){e.adapterHint=t},setTrackSource:function(t){e.trackSource=t},setTrackData:function(t){e.trackData=t},setIndexTrackData:function(t){e.indexTrackData=t},setAssembly:function(t){e.altAssemblyName=t},setTrackName:function(t){e.altTrackName=t},setTrackType:function(t){e.altTrackType=t},clearData:function(){e.trackSource="",e.altTrackName="",e.altTrackType="",e.altAssemblyName="",e.adapterHint="",e.indexTrackData=void 0,e.trackData=void 0}}})).views((function(e){return{get trackAdapter(){var t=e.trackData;return t?g.guessAdapter(t,e.indexTrackData,Re,e.adapterHint):void 0},get trackName(){return e.altTrackName||(e.trackData?Re(e.trackData):"")},get isFtp(){var t,n,r=e.trackData,a=e.indexTrackData;return!!(null!=a&&null!==(t=a.uri)&&void 0!==t&&t.startsWith("ftp://")||null!=r&&null!==(n=r.uri)&&void 0!==n&&n.startsWith("ftp://"))},get isRelativeTrackUrl(){var t,n=null===(t=e.trackData)||void 0===t?void 0:t.uri;return!!n&&!_e(n)},get isRelativeIndexUrl(){var t,n=null===(t=e.indexTrackData)||void 0===t?void 0:t.uri;return!!n&&!_e(n)},get isRelativeUrl(){return this.isRelativeIndexUrl||this.isRelativeTrackUrl},get trackHttp(){var t,n;return null===(t=e.trackData)||void 0===t||null===(n=t.uri)||void 0===n?void 0:n.startsWith("http://")},get indexHttp(){var t,n;return null===(t=e.indexTrackData)||void 0===t||null===(n=t.uri)||void 0===n?void 0:n.startsWith("http://")},get wrongProtocol(){return"https:"===window.location.protocol&&(this.trackHttp||this.indexHttp)},get unsupported(){var e;return(null===(e=this.trackAdapter)||void 0===e?void 0:e.type)===g.UNSUPPORTED},get assembly(){var t;return e.altAssemblyName||(null===(t=e.view.assemblyNames)||void 0===t?void 0:t[0])},get trackType(){return e.altTrackType||(this.trackAdapter?g.guessTrackType(this.trackAdapter.type):"")}}})).views((function(e){return{get warningMessage(){return e.isFtp?"Warning: JBrowse cannot access files using the ftp protocol":e.isRelativeUrl?"Warning: one or more of your files do not provide the protocol e.g.\n https://, please provide an absolute URL unless you are sure a\n relative URL is intended.":e.wrongProtocol?"Warning: You entered a http:// resources but we cannot access HTTP\n resources from JBrowse when it is running on https. Please use an\n https URL for your track, or access the JBrowse app from the http\n protocol":""}}}))}var He=d.ConfigurationSchema("AddTrackWidget",{}),ze=m.types.model("AddConnectionModel",{id:h.ElementId,type:m.types.literal("AddConnectionWidget")}),Ge=d.ConfigurationSchema("AddConnectionWidget",{}),Ve=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return!!e.find((function(e){return t.includes(e)}))};function Je(e){if(!e.trackId)throw new Error("not a track");return d.readConfObject(e,"name")||"Reference sequence (".concat(d.readConfObject(m.getParent(e),"name"),")")}function Ye(e,t,n){var r={children:[]},a=e.filterText,o=e.view;return t.filter((function(e){return t=a,r=Je(n=e),o=d.readConfObject(n,"category")||[],i=new RegExp(t,"i"),!!r.match(i)||o.filter((function(e){return!!e.match(i)})).length;var t,n,r,o,i})).forEach((function(e){var t=xe(d.readConfObject(e,"category")||[]);e.trackId.endsWith("sessionTrack")&&t.unshift(" Session tracks");for(var a=r,i=function(e){var r=t[e],o=a.children.find((function(e){return e.name===r})),i=t.slice(0,e+1).join(",");if(o)a=o;else{var l={children:[],name:r,id:i,isOpenByDefault:!n.get(i)};a.children.push(l),a=l}},l=0;l<t.length;l++)i(l);a.children.splice(a.children.findIndex((function(e){return e.children.length})),0,{id:e.trackId,name:Je(e),conf:e,checked:!!o.tracks.find((function(t){return t.configuration===e})),children:[]})})),r.children}var Ke=function(e){return m.types.model("HierarchicalTrackSelectorWidget",{id:h.ElementId,type:m.types.literal("HierarchicalTrackSelectorWidget"),collapsed:m.types.map(m.types.boolean),filterText:"",view:m.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setView:function(t){e.view=t},toggleCategory:function(t){e.collapsed.set(t,!e.collapsed.get(t))},clearFilterText:function(){e.filterText=""},setFilterText:function(t){e.filterText=t}}})).views((function(t){return{getRefSeqTrackConf:function(n){var r=i.getSession(t).assemblyManager.get(n),a=null==r?void 0:r.configuration.sequence,o=e.getViewType(t.view.type);if(a){var l,c=Ae(a.displays);try{var u=function(){var e=l.value;if(o.displayTypes.find((function(t){return t.name===e.type})))return{v:a}};for(c.s();!(l=c.n()).done;){var s=u();if("object"===ge(s))return s.v}}catch(e){c.e(e)}finally{c.f()}}},trackConfigurations:function(n){if(!t.view)return[];var r=i.getSession(t),a=r.tracks,o=r.assemblyManager.get(n);if(!o)return[];var l=t.getRefSeqTrackConf(n);return(l?[l]:[]).concat(xe(a.filter((function(e){var t=d.readConfObject(e,"assemblyNames");return Ve(o.allAliases,t)})).filter((function(n){var r=e.getViewType(t.view.type).displayTypes.map((function(e){return e.name})),a=n.displays.map((function(e){return e.type}));return Ve(r,a)}))))},get assemblyNames(){return t.view?t.view.assemblyNames:[]},connectionTrackConfigurations:function(n,r){if(!t.view)return[];var a=r.tracks,o=i.getSession(t).assemblyManager.get(n);return o&&o.initialized?a.filter((function(e){var t=d.readConfObject(e,"assemblyNames");return Ve(o.allAliases,t)})).filter((function(n){var r=e.getViewType(t.view.type).displayTypes.map((function(e){return e.name})),a=n.displays.map((function(e){return e.type}));return Ve(r,a)})):[]},hierarchy:function(e){var n=this,r=Ye(t,t.trackConfigurations(e),t.collapsed),a=i.getSession(t),o=a.connectionInstances.filter((function(t){var n=d.readConfObject(t.configuration,"assemblyNames");return 0===n.length||n.includes(e)})).map((function(t,r){var o=a.connections[r];return{id:o.connectionId,name:d.readConfObject(o,"name"),children:n.connectionHierarchy(e,t),state:{expanded:!0}}}));return{name:"Root",id:"Root",children:[{name:"Tracks",id:"Tracks",children:r}].concat(xe(o))}},connectionHierarchy:function(e,n){return Ye(t,t.connectionTrackConfigurations(e,n),t.collapsed)},allTracksInCategoryPath:function(e,n,r){var a=n?t.connectionHierarchy(n):t.hierarchy(r);e.forEach((function(e){a=a.get(e)||new Map}));var o={};return a.forEach((function(n,r){n.trackId?o[n.trackId]=n:o=Object.assign(o,t.allTracksInCategoryPath(e.concat([r])))})),o}}}))},Qe=d.ConfigurationSchema("HierarchicalTrackSelectorWidget",{}),Xe=C.makeStyles((function(){return{closeDialog:{position:"absolute",right:0,top:0},dialogContainer:{margin:15}}}));function $e(){return n.createElement(v.Tooltip,{style:{marginRight:"0.5rem"},title:"This plugin was installed by an administrator, you cannot remove it."},n.createElement(T,null))}function Ze(e){var t=e.onClose,r=e.plugin,a=Xe();return n.createElement(v.Dialog,{open:!0,onClose:function(){return t()}},n.createElement(v.DialogTitle,null,n.createElement(v.IconButton,{className:a.closeDialog,"aria-label":"close-dialog",onClick:function(){return t()}},n.createElement(w,null))),n.createElement(v.DialogContent,null,n.createElement(v.Typography,null,"Please confirm that you want to remove ",r,":"),n.createElement(v.DialogActions,null,n.createElement(v.Button,{variant:"contained",color:"primary",onClick:function(){window.setTimeout((function(){t(r)}),500)}},"Confirm"),n.createElement(v.Button,{variant:"contained",color:"secondary",onClick:function(){t()}},"Cancel"))))}function et(e){var r=e.plugin,a=e.model,o=e.pluginManager,l=Te(t.useState(),2),c=l[0],u=l[1],s=i.getSession(a),d=s.sessionPlugins,f=null==d?void 0:d.some((function(e){return o.pluginMetadata[r.name].url===e.url})),p=m.getParent(a,3),g=p.jbrowse,h=p.adminMode;return n.createElement(n.Fragment,null,c?n.createElement(Ze,{plugin:c,onClose:function(e){if(e){var t=o.pluginMetadata[r.name].url;h?g.removePlugin(t):x.isSessionWithSessionPlugins(s)&&s.removeSessionPlugin(t)}u(void 0)}}):null,n.createElement(v.ListItem,{key:r.name},h||f?n.createElement(v.IconButton,{"aria-label":"removePlugin","data-testid":"removePlugin-".concat(r.name),onClick:function(){return u(r.name)}},n.createElement(w,null)):n.createElement($e,null),n.createElement(v.Typography,null,r.name)))}var tt=y.observer(et);function nt(e){var t=e.pluginManager,r=e.model,a=t.plugins,o=a.filter((function(e){var n;return null===(n=t.pluginMetadata[e.name])||void 0===n?void 0:n.isCore})).map((function(e){return e.name})),i=a.filter((function(e){return!o.includes(e.name)}));return n.createElement(v.List,null,i.length?i.filter((function(e){return e.name.toLowerCase().includes(r.filterText.toLowerCase())})).map((function(e){return n.createElement(tt,{key:e.name,plugin:e,model:r,pluginManager:t})})):n.createElement(v.Typography,null,"No plugins currently installed"))}var rt=y.observer(nt),at=C.makeStyles((function(){return{card:{margin:"1em"},icon:{marginLeft:"0.5em",marginRight:"0.5em"},bold:{fontWeight:600},dataField:{display:"flex",alignItems:"center",margin:"0.4em 0em"}}}));function ot(e){var r=e.plugin,a=e.model,o=e.adminMode,l=at(),c=i.getSession(a),u=m.getEnv(a),s=Boolean(u.pluginManager.runtimePluginDefinitions.find((function(e){return e.url===r.url}))),d=Te(t.useState(!1),2),f=d[1],p=s||d[0],g=m.getParent(a,3).jbrowse;return n.createElement(v.Card,{variant:"outlined",key:r.name,className:l.card},n.createElement(v.CardContent,null,n.createElement("div",{className:l.dataField},n.createElement(v.Typography,{variant:"h5"},n.createElement(v.Link,{href:"".concat(r.location,"#readme"),target:"_blank",rel:"noopener"},r.name))),n.createElement("div",{className:l.dataField},n.createElement(S,{style:{marginRight:"0.5em"}}),n.createElement(v.Typography,null,r.authors.join(", "))),n.createElement(v.Typography,{className:l.bold},"Description:"),n.createElement(v.Typography,null,r.description)),n.createElement(v.CardActions,null,n.createElement(v.Button,{variant:"contained",color:"primary",disabled:p,startIcon:n.createElement(s?A:L,null),onClick:function(){o?g.addPlugin({name:r.name,url:r.url}):x.isSessionWithSessionPlugins(c)&&c.addSessionPlugin(r),f(!0)}},s?"Installed":"Install")))}var it=y.observer(ot),lt=C.makeStyles((function(){return{closeDialog:{position:"absolute",right:0,top:0},dialogContainer:{margin:15,display:"flex",flexDirection:"column"}}}));function ct(e){var r=e.open,a=e.onClose,o=e.model,i=lt(),l=Te(t.useState({name:"",url:""}),2),c=l[0],u=l[1],s=function(e){u(pe(pe({},c),{},be({},e.target.name,e.target.value)))},d=m.getRoot(o).jbrowse;return n.createElement(N,{open:r,onClose:function(){return a(!1)}},n.createElement(D,null,n.createElement(P,{className:i.closeDialog,"aria-label":"close-dialog",onClick:function(){return a(!1)}},n.createElement(w,null))),n.createElement("div",{className:i.dialogContainer},n.createElement(I,{id:"name-input",name:"name",label:"Plugin name",variant:"outlined",value:c.name,onChange:s,multiline:!0}),n.createElement(I,{id:"url-input",name:"url",label:"Plugin URL",variant:"outlined",value:c.url,onChange:s,multiline:!0}),n.createElement(B,{variant:"contained",color:"primary",style:{marginTop:"1.5rem"},onClick:function(){d.addPlugin({name:c.name,url:c.url})}},"Add plugin")))}var ut=y.observer(ct),st=v.makeStyles((function(e){return{accordion:{marginTop:"1em"},expandIcon:{color:"#fff"},searchBox:{marginBottom:e.spacing(2)},adminBadge:{margin:"0.5em",borderRadius:3,backgroundColor:"#FFB11D",padding:"1em",display:"flex",alignContent:"center"},customPluginButton:{margin:"0.5em",display:"flex",justifyContent:"center"}}}));function dt(e){var r=e.model,a=st(),o=Te(t.useState([]),2),l=o[0],c=o[1],u=Te(t.useState(),2),s=u[0],d=u[1],f=Te(t.useState(!1),2),p=f[0],g=f[1],h=i.getSession(r).adminMode,y=m.getEnv(r).pluginManager;return t.useEffect((function(){var e=!1;return ye(Ie.mark((function t(){var n,r;return Ie.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,fetch("https://jbrowse.org/plugin-store/plugins.json");case 3:if((n=t.sent).ok){t.next=6;break}throw new Error("Failed to fetch plugin data");case 6:return t.next=8,n.json();case 8:r=t.sent,e||c(r.plugins),t.next=15;break;case 12:t.prev=12,t.t0=t.catch(0),d(t.t0);case 15:case"end":return t.stop()}}),t,null,[[0,12]])})))(),function(){e=!0}}),[]),n.createElement("div",null,h&&n.createElement(n.Fragment,null,!i.isElectron&&n.createElement("div",{className:a.adminBadge},n.createElement(k,{style:{marginRight:"0.3em"}}),n.createElement(v.Typography,null,"You are using the ",n.createElement("code",null,"admin-server"),". Any changes you make will be saved to your configuration file. You also have the ability to add custom plugins that are not in the store.")),n.createElement("div",{className:a.customPluginButton},n.createElement(v.Button,{variant:"contained",color:"primary",onClick:function(){return g(!0)}},"Add custom plugin")),n.createElement(ut,{open:p,onClose:g,model:r})),n.createElement(v.TextField,{className:a.searchBox,label:"Filter plugins",value:r.filterText,onChange:function(e){return r.setFilterText(e.target.value)},fullWidth:!0,InputProps:{endAdornment:n.createElement(v.InputAdornment,{position:"end"},n.createElement(v.IconButton,{color:"secondary",onClick:function(){return r.clearFilterText()}},n.createElement(E,null)))}}),n.createElement(v.Accordion,{defaultExpanded:!0},n.createElement(v.AccordionSummary,{expandIcon:n.createElement(b,{className:a.expandIcon})},n.createElement(v.Typography,{variant:"h5"},"Installed plugins")),n.createElement("div",{style:{margin:"1em"}},n.createElement(rt,{pluginManager:y,model:r}))),n.createElement(v.Accordion,{defaultExpanded:!0},n.createElement(v.AccordionSummary,{expandIcon:n.createElement(b,{className:a.expandIcon})},n.createElement(v.Typography,{variant:"h5"},"Available plugins")),s?n.createElement(v.Typography,{color:"error"},"".concat(s)):l.length?l.filter((function(e){return e.name.toLowerCase().includes(r.filterText.toLowerCase())})).map((function(e){return n.createElement(it,{key:e.name,plugin:e,model:r,adminMode:!!h})})):n.createElement(v.Typography,null,"Loading...")))}var mt={__proto__:null,default:y.observer(dt)};function ft(e){return m.types.model("PluginStoreModel",{id:h.ElementId,type:m.types.literal("PluginStoreWidget"),filterText:"",view:m.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{clearFilterText:function(){e.filterText=""},setFilterText:function(t){e.filterText=t}}}))}var pt=d.ConfigurationSchema("PluginStoreWidget",{}),gt=t.lazy((function(){return Promise.resolve().then((function(){return Et}))})),ht=t.lazy((function(){return Promise.resolve().then((function(){return Nt}))})),yt=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&&ke(e,t)}(d,o);var n,s=we(d);function d(){var e;return ve(this,d),(e=s.apply(this,arguments)).name="DataManagementPlugin",e.exports={AssemblyManager:ht,SetDefaultSession:gt},e}return(n=[{key:"install",value:function(e){e.addConnectionType((function(){return new r({name:"UCSCTrackHubConnection",configSchema:Ne,stateModel:qe(e),displayName:"UCSC Track Hub",description:"A track or assembly hub in the Track Hub format",url:"//genome.ucsc.edu/goldenPath/help/hgTrackHubHelp.html#Intro"})})),e.addWidgetType((function(){return new a({name:"HierarchicalTrackSelectorWidget",heading:"Available tracks",configSchema:Qe,stateModel:Ke(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return Ht}))}))})})),e.addWidgetType((function(){return new a({name:"AddTrackWidget",heading:"Add a track",configSchema:He,stateModel:Ue(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return tn}))}))})})),e.addWidgetType((function(){return new a({name:"AddConnectionWidget",heading:"Add a connection",configSchema:Ge,stateModel:ze,ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return cn}))}))})})),e.addWidgetType((function(){return new a({name:"PluginStoreWidget",heading:"Plugin store",configSchema:pt,stateModel:ft(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return mt}))}))})}))}},{key:"configure",value:function(e){i.isAbstractMenuManager(e.rootModel)&&(e.rootModel.appendToMenu("File",{label:"Open track",icon:l,onClick:function(e){if(0===e.views.length)e.notify("Please open a view to add a track first");else if(e.views.length>=1){var t=e.addWidget("AddTrackWidget","addTrackWidget",{view:e.views[0].id});e.showWidget(t),e.views.length>1&&e.notify("This will add a track to the first view. Note: if you want to open a track in a specific view open the track selector for that view and use the add track (plus icon) in the bottom right")}}}),e.rootModel.appendToMenu("File",{label:"Open connection",icon:c,onClick:function(e){var t=e.addWidget("AddConnectionWidget","addConnectionWidget");e.showWidget(t)}}),e.rootModel.appendToMenu("File",{label:"Plugin store",icon:u,onClick:function(e){var t=e.addWidget("PluginStoreWidget","pluginStoreWidget");e.showWidget(t)}}))}}])&&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)}}(d.prototype,n),d}(),vt=C.makeStyles((function(e){return{root:{margin:e.spacing(1)},message:{padding:e.spacing(3)},titleBox:{color:"#fff",backgroundColor:e.palette.primary.main,textAlign:"center"},dialogContent:{width:600},resetButton:{justifyContent:"center",marginBottom:"6px"}}})),bt=y.observer((function(e){var t=e.session,r=e.selectedDefault,a=e.handleRadio,o=vt();return n.createElement(R,{className:o.root},n.createElement(O,{subheader:n.createElement(_,null,"Currently open session")},n.createElement(F,null,n.createElement(W,null,n.createElement(H,{checked:t.name===r,onChange:function(){return a(t)}})),n.createElement(q,{primary:t.name}))))})),Et={__proto__:null,default:y.observer((function(e){var r=e.rootModel,a=e.open,o=e.onClose,i=e.currentDefault,l=vt(),c=r.session,u=Te(t.useState(i),2),s=u[0],d=u[1];function m(e){d(e.name),r.jbrowse.setDefaultSessionConf(e),c.notify("Set default session to ".concat(e.name),"success")}return n.createElement(N,{open:a},n.createElement(D,{className:l.titleBox},"Set Default Session"),n.createElement(j,null,n.createElement(v.Grid,{className:l.resetButton,container:!0},n.createElement(v.Grid,{item:!0},n.createElement(B,{color:"secondary",variant:"contained",onClick:function(){d("New session"),r.jbrowse.setDefaultSessionConf({name:"New session"}),c.notify("Reset default session","success")}},"Clear default session"))),n.createElement(bt,{session:c,selectedDefault:s,handleRadio:m}),n.createElement(R,{className:l.root},n.createElement(O,{subheader:n.createElement(_,null,"Saved sessions")},c.savedSessions.length?c.savedSessions.map((function(e){var t=e.views,r=void 0===t?[]:t,a=r.map((function(e){return e.tracks.length})).reduce((function(e,t){return e+t}),0);return e.name!==c.name?n.createElement(F,{key:e.name},n.createElement(W,null,n.createElement(H,{checked:e.name===s,onChange:function(){return m(e)}})),n.createElement(q,{primary:e.name,secondary:"".concat(r.length," ").concat(z("view",r.length),"; ").concat(a,"\n open ").concat(z("track",a))})):null})):n.createElement(U,{className:l.message},"No saved sessions found")))),n.createElement(M,null,n.createElement(B,{color:"secondary",variant:"contained",onClick:function(){o(!1)}},"Return")))}))},kt=v.makeStyles((function(){return{table:{minWidth:500,minHeight:150},buttonCell:{padding:3},button:{display:"inline-block",padding:3,minHeight:0,minWidth:0}}})),Ct=y.observer((function(e){var t=e.rootModel,r=e.setIsAssemblyBeingEdited,a=e.setAssemblyBeingEdited,o=kt(),i=t.jbrowse.assemblies.map((function(e){var i=d.readConfObject(e,"name"),l=d.readConfObject(e,"displayName"),c=d.readConfObject(e,"aliases");return n.createElement(v.TableRow,{key:i},n.createElement(v.TableCell,null,i),n.createElement(v.TableCell,null,l),n.createElement(v.TableCell,null,c?c.toString():""),n.createElement(v.TableCell,{className:o.buttonCell},n.createElement(v.IconButton,{"data-testid":"".concat(i,"-edit"),className:o.button,onClick:function(){r(!0),a(e)}},n.createElement(V,{color:"primary"})),n.createElement(v.IconButton,{"data-testid":"".concat(i,"-delete"),className:o.button,onClick:function(){!function(e){t.jbrowse.removeAssemblyConf(e)}(i)}},n.createElement(J,{color:"error"}))))}));return n.createElement(v.TableContainer,{component:v.Paper},n.createElement(v.Table,{className:o.table},n.createElement(v.TableHead,null,n.createElement(v.TableRow,null,n.createElement(v.TableCell,null,n.createElement(v.Typography,{variant:"h5"},"Name")),n.createElement(v.TableCell,null,n.createElement(v.Typography,{variant:"h5"},"Display name")),n.createElement(v.TableCell,null,n.createElement(v.Typography,{variant:"h5"},"Aliases")),n.createElement(v.TableCell,null,n.createElement(v.Typography,{variant:"h5"},"Actions")))),n.createElement(v.TableBody,null,i)))})),wt=v.makeStyles((function(e){return{root:{flexGrow:1,overflow:"hidden",padding:e.spacing(0,3)},paper:{margin:"".concat(e.spacing(1),"px auto"),padding:e.spacing(2)},createButton:{marginTop:"1em",justifyContent:"center"},paperContent:{flex:"auto",margin:"".concat(e.spacing(1),"px auto"),padding:e.spacing(1),overflow:"auto"}}})),Tt=y.observer((function(e){var t=e.setAdapterSelection;return n.createElement(v.TextField,{value:e.adapterSelection,label:"Type",select:!0,helperText:"Type of adapter to use",fullWidth:!0,onChange:function(e){t(e.target.value)}},e.adapterTypes.map((function(e){return n.createElement(v.MenuItem,{key:e,value:e},e)})))})),xt=y.observer((function(e){var t=e.adapterSelection,r=e.setFastaLocation,a=e.faiLocation,o=e.setFaiLocation,i=e.gziLocation,l=e.setGziLocation,c=e.twoBitLocation,u=e.setTwoBitLocation,s=e.chromSizesLocation,d=e.setChromSizesLocation;return"IndexedFastaAdapter"===t||"BgzipFastaAdapter"===t?n.createElement(v.Grid,{container:!0,spacing:2},n.createElement(v.Grid,{item:!0},n.createElement(Y,{name:"fastaLocation",location:e.fastaLocation,setLocation:function(e){return r(e)}})),n.createElement(v.Grid,{item:!0},n.createElement(Y,{name:"faiLocation",location:a,setLocation:function(e){return o(e)}})),"BgzipFastaAdapter"===t?n.createElement(v.Grid,{item:!0},n.createElement(Y,{name:"gziLocation",location:i,setLocation:function(e){return l(e)}})):null):"TwoBitAdapter"===t?n.createElement(v.Grid,{container:!0,spacing:2},n.createElement(v.Grid,{item:!0},n.createElement(Y,{name:"twoBitLocation",location:c,setLocation:function(e){return u(e)}})),n.createElement(v.Grid,{item:!0},n.createElement(Y,{name:"chromSizesLocation (optional, can be added to speed up loading 2bit files with many contigs)",location:s,setLocation:function(e){return d(e)}}))):null})),St=y.observer((function(e){var r=e.rootModel,a=e.setFormOpen,o=wt(),i=["IndexedFastaAdapter","BgzipFastaAdapter","TwoBitAdapter"],l=Te(t.useState(""),2),c=l[0],u=l[1],s=Te(t.useState(""),2),d=s[0],m=s[1],f=Te(t.useState(i[0]),2),p=f[0],g=f[1],h=Te(t.useState({uri:""}),2),y=h[0],b=h[1],E=Te(t.useState({uri:""}),2),k=E[0],C=E[1],w=Te(t.useState({uri:""}),2),T=w[0],x=w[1],S=Te(t.useState({uri:""}),2),A=S[0],N=S[1],D=Te(t.useState({uri:""}),2),I=D[0],B=D[1];return n.createElement("div",{className:o.root},n.createElement(v.Paper,{className:o.paper},n.createElement(v.TextField,{id:"assembly-name",inputProps:{"data-testid":"assembly-name"},label:"Assembly name",helperText:"The assembly name e.g. hg38",variant:"outlined",value:c,onChange:function(e){return u(e.target.value)}}),n.createElement(v.TextField,{id:"assembly-name",inputProps:{"data-testid":"assembly-display-name"},label:"Assembly display name",helperText:'A human readable display name for the assembly e.g. "Homo sapiens (hg38)"',variant:"outlined",value:d,onChange:function(e){return m(e.target.value)}}),n.createElement(Tt,{adapterSelection:p,setAdapterSelection:g,adapterTypes:i}),n.createElement("div",{className:o.paperContent},n.createElement(xt,{adapterSelection:p,fastaLocation:y,setFastaLocation:b,faiLocation:k,setFaiLocation:C,gziLocation:T,setGziLocation:x,twoBitLocation:A,setTwoBitLocation:N,chromSizesLocation:I,setChromSizesLocation:B}))),n.createElement(v.Grid,{container:!0,className:o.createButton},n.createElement(v.Grid,{item:!0},n.createElement(v.Button,{variant:"contained",color:"secondary",startIcon:n.createElement(L,null),onClick:function(){var e;""===c?r.session.notify("Can't create an assembly without a name"):(a(!1),"IndexedFastaAdapter"===p?e={name:c,displayName:d,sequence:{adapter:{type:"IndexedFastaAdapter",fastaLocation:y,faiLocation:k}}}:"BgzipFastaAdapter"===p?e={name:c,displayName:d,sequence:{adapter:{type:"BgzipFastaAdapter",fastaLocation:y,faiLocation:k,gziLocation:T}}}:"TwoBitAdapter"===p&&(e={name:c,displayName:d,sequence:{adapter:{type:"TwoBitAdapter",twoBitLocation:A,chromSizesLocation:I}}}),r.jbrowse.addAssemblyConf(e),r.session.notify("Successfully added ".concat(c," assembly to JBrowse 2"),"success"))}},"Create new assembly"))))})),Lt=y.observer((function(e){return n.createElement(K.ConfigurationEditor,{model:{target:e.assembly}})})),At=C.makeStyles((function(e){return{titleBox:{color:"#fff",backgroundColor:e.palette.primary.main,textAlign:"center"},dialogContent:{width:"100%"},backButton:{color:"#fff",position:"absolute",left:e.spacing(4),top:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),Nt={__proto__:null,default:y.observer((function(e){var r,a=e.rootModel,o=e.onClose,i=At(),l=Te(t.useState(!1),2),c=l[0],u=l[1],s=Te(t.useState(!1),2),d=s[0],m=s[1],f=Te(t.useState(),2),p=f[0],g=f[1],h=!c&&!d;return n.createElement(v.Dialog,{open:!0,onClose:function(){return o(!1)}},n.createElement(v.DialogTitle,{className:i.titleBox},h?"Assembly manager":null,c?n.createElement(n.Fragment,null,n.createElement(v.IconButton,{"aria-label":"back",className:i.backButton,onClick:function(){return u(!1)}},n.createElement(G,null)),"Add new assembly"):null,d?n.createElement(n.Fragment,null,n.createElement(v.IconButton,{"aria-label":"back",className:i.backButton,onClick:function(){return m(!1)}},n.createElement(G,null)),void 0!==(r=p)?r.name:null):null,n.createElement(v.IconButton,{"aria-label":"close",className:i.closeButton,onClick:function(){return o(!1)}},n.createElement(w,null))),n.createElement(v.DialogContent,null,n.createElement("div",{className:i.dialogContent},h?n.createElement(Ct,{rootModel:a,setIsAssemblyBeingEdited:m,setAssemblyBeingEdited:g}):null,d?n.createElement(Lt,{assembly:p}):null,c?n.createElement(St,{rootModel:a,setFormOpen:u}):null)),n.createElement(v.DialogActions,null,h?n.createElement(n.Fragment,null,n.createElement(v.Button,{color:"secondary",variant:"contained",onClick:function(){return o(!1)}},"Close"),n.createElement(v.Button,{variant:"contained",color:"secondary",startIcon:n.createElement(L,null),onClick:function(){return u(!0)}},"Add new assembly")):null))}))},Dt=t.lazy((function(){return Promise.resolve().then((function(){return sn}))})),It=t.lazy((function(){return Promise.resolve().then((function(){return mn}))})),Bt=t.lazy((function(){return Promise.resolve().then((function(){return gn}))})),Pt=t.lazy((function(){return Promise.resolve().then((function(){return vn}))})),jt=v.makeStyles((function(e){var t,n;return{searchBox:{marginBottom:e.spacing(2)},menuIcon:{marginRight:e.spacing(1),marginBottom:0},fab:{position:"absolute",bottom:e.spacing(6),right:e.spacing(6)},compactCheckbox:{padding:0},checkboxLabel:{marginRight:0,"&:hover":{backgroundColor:"#eee"}},accordionBase:{display:"flex"},accordionCard:{padding:3,cursor:"pointer",display:"flex"},nestingLevelMarker:{position:"absolute",borderLeft:"1.5px solid #555"},accordionColor:{background:null===(t=e.palette.tertiary)||void 0===t?void 0:t.main,color:null===(n=e.palette.tertiary)||void 0===n?void 0:n.contrastText,width:"100%",display:"flex",paddingLeft:5},accordionText:{margin:"auto 0"}}})),Mt=function(e){var t=e.data,r=e.isOpen,a=e.style,o=e.setOpen,i=t.isLeaf,l=t.nestingLevel,c=t.checked,u=t.id,s=t.name,d=t.onChange,m=t.toggleCollapse,f=t.conf,p=t.onMoreInfo,g=jt(),h=10*l+(i?10:0),y=s&&(s.endsWith("(Unsupported)")||s.endsWith("(Unknown)"));return n.createElement("div",{style:a,className:i?void 0:g.accordionBase},new Array(l).fill(0).map((function(e,t){return n.createElement("div",{key:"mark-".concat(t),style:{left:10*t+4,height:a.height},className:g.nestingLevelMarker})})),n.createElement("div",{className:i?void 0:g.accordionCard,onClick:function(){m(u),o(!r)},style:{marginLeft:h,whiteSpace:"nowrap",width:"100%"}},n.createElement("div",{className:i?void 0:g.accordionColor},i?n.createElement(n.Fragment,null,n.createElement(v.FormControlLabel,{className:g.checkboxLabel,control:n.createElement(v.Checkbox,{className:g.compactCheckbox,checked:c,onChange:function(){return d(u)},color:"primary",disabled:y,inputProps:{"data-testid":"htsTrackEntry-".concat(u)}}),label:s}),n.createElement(v.IconButton,{onClick:function(e){return p({target:e.currentTarget,id:u,conf:f})},color:"secondary","data-testid":"htsTrackEntryMenu-".concat(u)},n.createElement(Z,null))):n.createElement("div",{className:g.accordionText},n.createElement(v.Typography,null,n.createElement(r?Q:X,null),s)))))},Ot=function(e,t,n){var r=!!e.conf;return{data:pe(pe({defaultHeight:r?22:40,isLeaf:r,isOpenByDefault:!0,nestingLevel:t},e),n),nestingLevel:t,node:e}},Ft=y.observer((function(e){var r,a=e.height,o=e.tree,l=e.model,c=l.filterText,u=l.view,s=t.useRef(null),d=Te(t.useState(),2),m=d[0],f=d[1],p=i.getSession(l),g=t.useMemo((function(){return{onChange:function(e){return u.toggleTrack(e)},toggleCollapse:function(e){return l.toggleCategory(e)},onMoreInfo:f}}),[u,l]),h=t.useCallback(Ie.mark((function e(){var t,n,r,a;return Ie.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=0;case 1:if(!(t<o.children.length)){e.next=7;break}return e.next=4,Ot(o.children[t],0,g);case 4:t++,e.next=1;break;case 7:return void(e.next=10);case 10:n=e.sent,r=0;case 12:if(!(r<n.node.children.length)){e.next=19;break}return a=n.node.children[r],e.next=16,Ot(a,n.nestingLevel+1,g);case 16:r++,e.next=12;break;case 19:e.next=7;break;case 21:case"end":return e.stop()}}),e)})),[o,g]),y=null==m?void 0:m.conf,v=y&&(null===(r=p.getTrackActionMenuItems)||void 0===r?void 0:r.call(p,y))||[];return t.useEffect((function(){s.current.recomputeTree({refreshNodes:!0,useDefaultHeight:!0})}),[o,c]),n.createElement(n.Fragment,null,n.createElement(re.VariableSizeTree,{ref:s,treeWalker:h,height:a},Mt),n.createElement(ne,{anchorEl:null==m?void 0:m.target,menuItems:v,onMenuItemClick:function(e,t){t(),f(void 0)},open:Boolean(m),onClose:function(){return f(void 0)}}))})),Wt=function(e){var t=e.tree,r=e.model,a=e.offset;return"undefined"==typeof jest?n.createElement(te,{disableWidth:!0},(function(e){return n.createElement(Ft,{height:e.height-a,model:r,tree:t})})):n.createElement(Ft,{height:9e3,model:r,tree:t})},qt=function(e){var t=e.overrideDimensions,r=e.children;return t?n.createElement("div",{style:pe({},t)},r):n.createElement(n.Fragment,null,r)},_t=y.observer((function(e){var r=e.model,a=e.toolbarHeight,o=e.overrideDimensions,l=jt(),c=i.getSession(r),u=Te(t.useState(null),2),s=u[0],d=u[1];function m(){d(null)}return n.createElement(qt,{overrideDimensions:o},n.createElement(Ut,{model:r,toolbarHeight:a,overrideDimensions:o}),n.createElement(v.Fab,{color:"secondary",className:l.fab,onClick:function(e){d(e.currentTarget)}},n.createElement(L,null)),n.createElement(v.Menu,{anchorEl:s,open:Boolean(s),onClose:function(){return d(null)}},n.createElement(v.MenuItem,{onClick:function(){m();var e=c.addWidget("AddConnectionWidget","addConnectionWidget");c.showWidget(e)}},"Add connection"),n.createElement(v.MenuItem,{onClick:function(){m();var e=c.addWidget("AddTrackWidget","addTrackWidget",{view:r.view.id});c.showWidget(e)}},"Add track")))})),Rt=y.observer((function(e){var r=e.model,a=e.setHeaderHeight,o=e.setAssemblyIdx,l=e.assemblyIdx,c=jt(),u=i.getSession(r),s=Te(t.useState(),2),m=s[0],f=s[1],p=Te(t.useState(),2),g=p[0],h=p[1],y=Te(t.useState(),2),b=y[0],k=y[1],C=Te(t.useState(),2),w=C[0],T=C[1],x=Te(t.useState(!1),2),S=x[0],L=x[1],A=Te(t.useState(!1),2),N=A[0],D=A[1],I=r.assemblyNames,B=I[l];function P(e,t){var n=d.readConfObject(e,"name"),r=u.prepareToBreakConnection(e);if(r){var a=Te(r,2),o=a[0],i=a[1];Object.keys(i).length>0?k({connectionConf:e,safelyBreakConnection:o,dereferenceTypeCount:i,name:n}):o()}t&&T({name:n,connectionConf:e})}var j=[{label:"Turn on/off connections...",onClick:function(){return D(!0)}},{label:"Delete connections...",onClick:function(){return L(!0)}}],M=I.length>1?[{label:"Select assembly...",subMenu:I.map((function(e,t){return{label:e,onClick:function(){o(t)}}}))}]:[],O=[{label:"Add track...",onClick:function(){u.showWidget(u.addWidget("AddTrackWidget","addTrackWidget",{view:r.view.id}))}}].concat(M);return n.createElement("div",{ref:function(e){return a((null==e?void 0:e.getBoundingClientRect().height)||0)},"data-testid":"hierarchical_track_selector"},n.createElement("div",{style:{display:"flex"}},n.createElement(v.IconButton,{className:c.menuIcon,onClick:function(e){h(e.currentTarget)}},n.createElement($,null)),n.createElement(v.IconButton,{className:c.menuIcon,onClick:function(e){f(e.currentTarget)}},n.createElement(ee,null)),n.createElement(v.TextField,{className:c.searchBox,label:"Filter tracks",value:r.filterText,onChange:function(e){return r.setFilterText(e.target.value)},fullWidth:!0,InputProps:{endAdornment:n.createElement(v.InputAdornment,{position:"end"},n.createElement(v.IconButton,{color:"secondary",onClick:r.clearFilterText},n.createElement(E,null)))}})),n.createElement(ne,{anchorEl:m,open:Boolean(m),onMenuItemClick:function(e,t){t(),f(void 0)},onClose:function(){f(void 0)},menuItems:[{label:"Add connection",onClick:function(){u.showWidget(u.addWidget("AddConnectionWidget","addConnectionWidget"))}}].concat(j)}),n.createElement(ne,{anchorEl:g,open:Boolean(g),onMenuItemClick:function(e,t){t(),h(void 0)},onClose:function(){h(void 0)},menuItems:O}),n.createElement(t.Suspense,{fallback:n.createElement("div",null)},b?n.createElement(Dt,{modalInfo:b,setModalInfo:k,session:u}):w?n.createElement(It,{handleClose:function(){T(void 0)},deleteDialogDetails:w,session:u}):null,S?n.createElement(Bt,{handleClose:function(){return L(!1)},breakConnection:P,session:u}):null,N?n.createElement(Pt,{handleClose:function(){return D(!1)},session:u,breakConnection:P,assemblyName:B}):null))})),Ut=y.observer((function(e){var r=e.model,a=e.toolbarHeight,o=void 0===a?0:a,i=Te(t.useState(0),2),l=i[0],c=i[1],u=Te(t.useState(0),2),s=u[0],d=r.assemblyNames[l];return d?n.createElement(n.Fragment,null,n.createElement(Rt,{model:r,setHeaderHeight:u[1],setAssemblyIdx:c,assemblyIdx:l}),n.createElement(Wt,{tree:r.hierarchy(d),model:r,offset:o+s})):null})),Ht={__proto__:null,default:_t},zt=C.makeStyles((function(e){return{spacing:{marginBottom:e.spacing(3)}}}));function Gt(e){var t,r=e.trackAdapter,a=e.trackType,o=zt();return"SNPCoverageAdapter"===r.type?n.createElement(U,{className:o.spacing},"Selected ",n.createElement("code",null,a),". Using adapter"," ",n.createElement("code",null,r.type)," with subadapter"," ",n.createElement("code",null,null===(t=r.subadapter)||void 0===t?void 0:t.type),". Please enter a track name and, if necessary, update the track type."):n.createElement(U,{className:o.spacing},"Using adapter ",n.createElement("code",null,r.type)," and guessing track type"," ",n.createElement("code",null,a),". Please enter a track name and, if necessary, update the track type.")}function Vt(e){var t=e.adapterHint,r=e.model,a=zt(),o=i.getSession(r);return n.createElement(I,{className:a.spacing,value:t,label:"adapterType",helperText:"An adapter type",select:!0,fullWidth:!0,onChange:function(e){r.setAdapterHint(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"adapterTypeSelect"}}},m.getEnv(o).pluginManager.getElementTypesInGroup("adapter").filter((function(e){return"SNPCoverageAdapter"!==e.name})).map((function(e){return n.createElement(oe,{key:e.name,value:e.name},e.name)})))}function Jt(e){var t=e.model,r=zt(),a=t.adapterHint;return n.createElement(n.Fragment,null,n.createElement(U,{className:r.spacing},"Was not able to guess the adapter type for this data, but it may be in the list below. If not, you can"," ",n.createElement(ae,{href:"https://github.com/GMOD/jbrowse-components/releases",target:"_blank",rel:"noopener noreferrer"},"check for new releases")," ","of JBrowse to see if they support this data type or"," ",n.createElement(ae,{href:"https://github.com/GMOD/jbrowse-components/issues/new",target:"_blank",rel:"noopener noreferrer"},"file an issue")," ","and add a feature request for this data type."),n.createElement(Vt,{adapterHint:a,model:t}))}function Yt(e){var t=e.model,r=zt(),a=i.getSession(t),o=t.trackName,l=t.trackAdapter,c=t.trackType,u=t.assembly,s=t.warningMessage,f=t.adapterHint;return t.unsupported?n.createElement(U,{className:r.spacing},"This version of JBrowse cannot display data of this type. It is possible, however, that there is a newer version that can display them. You can"," ",n.createElement(ae,{href:"https://github.com/GMOD/jbrowse-components/releases",target:"_blank",rel:"noopener noreferrer"},"check for new releases")," ","of JBrowse or"," ",n.createElement(ae,{href:"https://github.com/GMOD/jbrowse-components/issues/new",target:"_blank",rel:"noopener noreferrer"},"file an issue")," ","and add a feature request for this data type."):(null==l?void 0:l.type)===g.UNKNOWN?n.createElement(Jt,{model:t}):null!=l&&l.type?n.createElement(n.Fragment,null,l?n.createElement(Gt,{trackAdapter:l,trackType:c}):null,s?n.createElement(U,{style:{color:"orange"}},s):null,n.createElement(Vt,{adapterHint:f,model:t}),n.createElement(I,{className:r.spacing,label:"trackName",helperText:"A name for this track",fullWidth:!0,value:o,onChange:function(e){return t.setTrackName(e.target.value)},inputProps:{"data-testid":"trackNameInput"}}),n.createElement(I,{className:r.spacing,value:c,label:"trackType",helperText:"A track type",select:!0,fullWidth:!0,onChange:function(e){t.setTrackType(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"trackTypeSelect"}}},m.getEnv(a).pluginManager.getElementTypesInGroup("track").map((function(e){var t=e.name;return n.createElement(oe,{key:t,value:t},t)}))),n.createElement(I,{value:u,label:"assemblyName",helperText:"Assembly to which the track will be added",select:!0,fullWidth:!0,onChange:function(e){t.setAssembly(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"assemblyNameSelect"}}},a.assemblies.map((function(e){var t=d.readConfObject(e,"name");return n.createElement(oe,{key:t,value:t},t)})))):n.createElement(U,null,"Could not recognize this data type.")}var Kt=y.observer(Yt),Qt=C.makeStyles((function(e){return{root:{display:"flex",flexDirection:"column"},paper:{padding:e.spacing(1)}}}));function Xt(e){var t=e.model,r=Qt();return n.createElement("div",{className:r.root},n.createElement(R,{className:r.paper},n.createElement(ie.FileSelector,{name:"Main file",description:"",location:t.trackData,setLocation:t.setTrackData}),n.createElement(ie.FileSelector,{name:"Index file",description:"Automatically inferred from the URL if not supplied",location:t.indexTrackData,setLocation:t.setIndexTrackData})))}var $t=v.makeStyles((function(e){return{root:{marginTop:e.spacing(1)},stepper:{backgroundColor:e.palette.background.default},button:{marginTop:e.spacing(1),marginRight:e.spacing(1)},actionsContainer:{marginBottom:e.spacing(2)},stepContent:{margin:e.spacing(1)},alertContainer:{padding:"".concat(e.spacing(2),"px 0px ").concat(e.spacing(2),"px 0px")}}})),Zt=["Enter track data","Confirm track type"];function en(e){var r=e.model,a=Te(t.useState(0),2),o=a[0],l=a[1],c=$t(),u=i.getSession(r),s=r.assembly,m=r.trackAdapter,f=r.trackData,p=r.trackName,g=r.trackType,h=Te(t.useState(),2),y=h[0],b=h[1];function E(){if(o===Zt.length-1){var e="".concat(p.toLowerCase().replace(/ /g,"_"),"-").concat(Date.now()).concat(u.adminMode?"":"-sessionTrack"),t=u.assemblyManager.get(s);m&&"UNKNOWN"!==m.type?(u.addTrackConf({trackId:e,type:g,name:p,assemblyNames:[s],adapter:pe(pe({},m),{},{sequenceAdapter:d.getConf(t,["sequence","adapter"])})}),r.view?r.view.showTrack(e):u.notify("Open a new view, or use the track selector in an existing view, to view this track","info"),r.clearData(),u.hideWidget(r)):b("Failed to add track.\nThe configuration of this file is not currently supported.")}else l(o+1)}function k(){b(void 0),l(o-1)}function C(){switch(o){case 0:return!f;case 1:return!(p&&g&&null!=m&&m.type&&s);default:return!0}}return n.createElement("div",{className:c.root},n.createElement(v.Stepper,{className:c.stepper,activeStep:o,orientation:"vertical"},Zt.map((function(e,t){return n.createElement(v.Step,{key:e},n.createElement(v.StepLabel,null,e),n.createElement(v.StepContent,null,function(e){switch(e){case 0:return n.createElement(Xt,{model:r});case 1:return n.createElement(Kt,{model:r});default:return n.createElement(v.Typography,null,"Unknown step")}}(t),n.createElement("div",{className:c.actionsContainer},n.createElement(v.Button,{disabled:0===o,onClick:k,className:c.button},"Back"),n.createElement(v.Button,{disabled:C(),variant:"contained",color:"primary",onClick:E,className:c.button,"data-testid":"addTrackNextButton"},o===Zt.length-1?"Add":"Next")),y?n.createElement("div",{className:c.alertContainer},n.createElement(le.Alert,{severity:"error"},y)):null))}))))}var tn={__proto__:null,default:y.observer(en)},nn=y.observer((function(e){var r=e.model,a=e.setModelReady,o=e.connectionType.configEditorComponent||K.ConfigurationEditor;return n.createElement(t.Suspense,{fallback:n.createElement("div",null,"Loading...")},n.createElement(o,{model:{target:r},setModelReady:a}))}));function rn(e){var r=e.connectionTypeChoices,a=e.connectionType,o=e.setConnectionType;return t.useEffect((function(){a.name||o(r[0])})),a.name?n.createElement("form",{autoComplete:"off"},n.createElement(I,{value:a.name,label:"connectionType",helperText:a.description?n.createElement(n.Fragment,null,a.description,a.url?n.createElement(P,{href:a.url,rel:"noopener noreferrer",target:"_blank",color:"secondary"},n.createElement(me,null)):null):null,select:!0,fullWidth:!0,onChange:function(e){o(r.find((function(t){return t.name===e.target.value})))},variant:"outlined"},r.map((function(e){return n.createElement(oe,{key:e.name,value:e.name},e.displayName||e.name)})))):null}var an=C.makeStyles((function(e){return{root:{marginTop:e.spacing(1)},stepper:{backgroundColor:e.palette.background.default},button:{marginTop:e.spacing(1),marginRight:e.spacing(1)},actionsContainer:{marginBottom:e.spacing(2)}}})),on=["Select a Connection Type","Configure Connection"];function ln(e){var r=e.model,a=Te(t.useState({}),2),o=a[0],l=a[1],c=Te(t.useState({}),2),u=c[0],s=c[1],d=Te(t.useState(!0),2),f=d[0],p=d[1],g=Te(t.useState(0),2),h=g[0],y=g[1],v=an(),b=i.getSession(r),E=m.getEnv(b).pluginManager;function k(e){l(e),s(e.configSchema.create({connectionId:"".concat(e.name,"-").concat(Date.now())},m.getEnv(r)))}function C(){var e;h===on.length-1?(e=b.addConnectionConf(u),b.makeConnection(e),b.hideWidget(r)):y(h+1)}function w(){y(h-1)}return n.createElement("div",{className:v.root},n.createElement(de,{className:v.stepper,activeStep:h,orientation:"vertical"},on.map((function(e){return n.createElement(ce,{key:e},n.createElement(se,null,e),n.createElement(ue,null,function(){switch(h){case 0:return n.createElement(rn,{connectionTypeChoices:E.getElementTypesInGroup("connection"),connectionType:o,setConnectionType:k});case 1:return n.createElement(nn,{connectionType:o,model:u,setModelReady:p});default:return n.createElement(U,null,"Unknown step")}}(),n.createElement("div",{className:v.actionsContainer},n.createElement(B,{disabled:0===h,onClick:w,className:v.button},"Back"),n.createElement(B,{disabled:!(0===h&&o.name||1===h&&u&&f),variant:"contained",color:"primary",onClick:C,className:v.button,"data-testid":"addConnectionNext"},h===on.length-1?"Connect":"Next"))))}))))}ln.propTypes={model:y.PropTypes.observableObject.isRequired};var cn={__proto__:null,default:y.observer(ln)};function un(e){var t=e.modalInfo,r=void 0===t?{}:t,a=e.setModalInfo,o=r.dereferenceTypeCount,i=r.safelyBreakConnection;return n.createElement(v.Dialog,{open:!0},n.createElement(v.DialogTitle,null,'Close connection "',r.name,'"'),n.createElement(v.DialogContent,null,o?n.createElement(n.Fragment,null,n.createElement(v.DialogContentText,null,"Closing this connection will close:"),n.createElement(v.List,null,Object.entries(o).map((function(e){var t=Te(e,2),r=t[0];return n.createElement(v.ListItem,{key:r},"".concat(t[1]," ").concat(r))})))):null,n.createElement(v.DialogContentText,null,"Are you sure you want to close this connection?")),n.createElement(v.DialogActions,null,n.createElement(v.Button,{onClick:function(){a()},color:"primary"},"Cancel"),n.createElement(v.Button,{variant:"contained",onClick:r?function(){i&&i(),a()}:function(){},color:"primary"},"OK")))}var sn={__proto__:null,default:y.observer(un)};function dn(e){var t=e.deleteDialogDetails,r=e.session,a=e.handleClose,o=t.connectionConf;return n.createElement(v.Dialog,{open:!0},n.createElement(v.DialogTitle,null,'Delete connection "',t.name,'"'),n.createElement(v.DialogContent,null,n.createElement(v.DialogContentText,null,"Are you sure you want to delete this connection?")),n.createElement(v.DialogActions,null,n.createElement(v.Button,{onClick:function(){return a()},color:"primary"},"Cancel"),n.createElement(v.Button,{variant:"contained",color:"primary",onClick:function(){var e;o&&(null===(e=r.deleteConnection)||void 0===e||e.call(r,o)),a()}},"OK")))}var mn={__proto__:null,default:y.observer(dn)},fn=v.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},connectionContainer:{margin:e.spacing(4),width:500}}}));function pn(e){var t=e.session,r=e.handleClose,a=e.breakConnection,o=fn(),i=t.adminMode,l=t.connections,c=t.sessionConnections;return n.createElement(v.Dialog,{open:!0,onClose:r,maxWidth:"lg"},n.createElement(v.DialogTitle,null,"Delete connections",n.createElement(v.IconButton,{className:o.closeButton,onClick:function(){return r()}},n.createElement(w,null))),n.createElement(v.DialogContent,null,n.createElement(v.Typography,null,"Click the X icon to delete the connection from your config completely"),n.createElement("div",{className:o.connectionContainer},l.map((function(e){var t=d.readConfObject(e,"name");return n.createElement("div",{key:"conn-".concat(t)},n.createElement(v.Typography,null,i||null!=c&&c.includes(e)?n.createElement(v.IconButton,{onClick:function(){return a(e,!0)}},n.createElement(w,{color:"error"})):n.createElement(v.Tooltip,{title:"Unable to delete connection in config file as non-admin user"},n.createElement(v.IconButton,null,n.createElement(w,{color:"disabled"}))),t))})),l.length?null:n.createElement(v.Typography,null,"No connections found"))),n.createElement(v.DialogActions,null,n.createElement(v.Button,{onClick:function(){return r()},variant:"contained",color:"primary"},"Close")))}var gn={__proto__:null,default:y.observer(pn)},hn=v.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},connectionContainer:{width:500,margin:e.spacing(4)}}}));function yn(e){var t=e.session,r=e.handleClose,a=e.assemblyName,o=e.breakConnection,i=hn(),l=t.connectionInstances,c=t.connections.filter((function(e){var t=d.readConfObject(e,"assemblyNames");return 0===t.length||t.includes(a)}));return n.createElement(v.Dialog,{open:!0,onClose:r,maxWidth:"lg"},n.createElement(v.DialogTitle,null,"Turn on/off connections",n.createElement(v.IconButton,{className:i.closeButton,onClick:function(){return r()}},n.createElement(w,null))),n.createElement(v.DialogContent,null,n.createElement(v.Typography,null,"Use the checkbox to turn on/off connections"),n.createElement("div",{className:i.connectionContainer},c.map((function(e){var r=d.readConfObject(e,"name");return n.createElement("div",{key:e.connectionId},n.createElement(v.FormControlLabel,{control:n.createElement(v.Checkbox,{checked:!(null==l||!l.find((function(e){return r===e.name}))),onChange:function(){var n;null!=l&&l.find((function(t){return t.name===d.readConfObject(e,"name")}))?o(e):null===(n=t.makeConnection)||void 0===n||n.call(t,e)},color:"primary"}),label:r}))})),c.length?null:n.createElement(v.Typography,null,"No connections found for ",a))),n.createElement(v.DialogActions,null,n.createElement(v.Button,{onClick:function(){return r()},variant:"contained",color:"primary"},"Close")))}var vn={__proto__:null,default:y.observer(yn)};exports.AssemblyManager=ht,exports.SetDefaultSession=gt,exports.default=yt;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}function t(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t.default=e,t}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),r=e(n),a=e(require("@jbrowse/core/pluggableElementTypes/ConnectionType")),o=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),i=e(require("@jbrowse/core/Plugin")),l=require("@jbrowse/core/pluggableElementTypes/models"),c=require("@jbrowse/core/configuration"),u=require("@jbrowse/core/util"),s=require("mobx-state-tree"),d=require("@jbrowse/core/util/io"),m=require("@jbrowse/core/util/tracks"),p=require("@jbrowse/core/util/types/mst"),f=require("mobx-react"),g=require("@material-ui/core"),h=e(require("@material-ui/icons/ExpandMore")),y=e(require("@material-ui/icons/Clear")),v=e(require("@material-ui/icons/InfoOutlined")),b=require("@material-ui/core/styles"),E=e(require("@material-ui/icons/Close")),k=e(require("@material-ui/icons/Lock")),C=require("@jbrowse/core/util/types"),T=e(require("@material-ui/icons/Person")),w=e(require("@material-ui/icons/Add")),x=e(require("@material-ui/icons/Check")),S=e(require("clsx")),L=e(require("@material-ui/core/IconButton")),N=e(require("@material-ui/icons/ArrowBackIos")),A=e(require("@material-ui/icons/Create")),D=e(require("@material-ui/icons/Delete")),I=e(require("@jbrowse/core/ui/FileSelector")),B=require("@jbrowse/plugin-config"),P=e(require("@material-ui/icons/ArrowDropDown")),j=e(require("@material-ui/icons/ArrowRight")),M=e(require("@material-ui/icons/Menu")),O=e(require("@material-ui/icons/MoreHoriz")),F=e(require("@material-ui/icons/PowerOutlined")),U=e(require("react-virtualized-auto-sizer")),_=e(require("@jbrowse/core/ui/Menu")),R=require("react-vtree"),W=require("@material-ui/lab"),q=require("@jbrowse/core/ui"),H=e(require("@material-ui/core/Button")),z=e(require("@material-ui/core/Step")),G=e(require("@material-ui/core/StepContent")),J=e(require("@material-ui/core/StepLabel")),V=e(require("@material-ui/core/Stepper")),Y=e(require("@material-ui/core/Typography")),K=e(require("@material-ui/core/MenuItem")),Q=e(require("@material-ui/core/TextField")),X=e(require("@material-ui/icons/OpenInNew"));function $(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 Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$(Object(n),!0).forEach((function(t){ae(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ee(e){return(ee="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 te(e,t,n,r,a,o,i){try{var l=e[o](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,a)}function ne(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){te(o,r,a,i,l,"next",e)}function l(e){te(o,r,a,i,l,"throw",e)}i(void 0)}))}}function re(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(e){return(oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function le(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ce(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=oe(e);if(t){var a=oe(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return le(this,n)}}function ue(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,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}}(e,t)||de(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 se(e){return function(e){if(Array.isArray(e))return me(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||de(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 de(e,t){if(e){if("string"==typeof e)return me(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?me(e,t):void 0}}function me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function pe(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=de(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 o,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,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw o}}}}var fe=c.ConfigurationSchema("UCSCTrackHubConnection",{hubTxtLocation:{type:"fileLocation",defaultValue:{uri:"http://mysite.com/path/to/hub.txt",locationType:"UriLocation"},description:"location of the hub file (usually called hub.txt)"},assemblyNames:{type:"stringArray",defaultValue:[],description:"optional list of genomes to import from this track hub, if empty all genomes will be imported"}},{baseConfiguration:l.baseConnectionConfig});function ge(e,t){return e(t={exports:{}},t.exports),t.exports}var he=ge((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",o=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 a=Object.create((t&&t.prototype instanceof d?t:d).prototype),o=new T(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=E(i,n);if(l){if(l===s)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=u(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===s)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,o),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var s={};function d(){}function m(){}function p(){}var f={};l(f,a,(function(){return this}));var g=Object.getPrototypeOf,h=g&&g(g(w([])));h&&h!==t&&n.call(h,a)&&(f=h);var y=p.prototype=d.prototype=Object.create(f);function v(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(a,o){function i(){return new t((function(r,i){!function r(a,o,i,l){var c=u(e[a],e,o);if("throw"!==c.type){var s=c.arg,d=s.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){s.value=e,i(s)}),(function(e){return r("throw",e,i,l)}))}l(c.arg)}(a,o,r,i)}))}return r=r?r.then(i,i):i()}}function E(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,E(e,t),"throw"===t.method))return s;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,s;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function w(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=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 o.next=o}}return{next:x}}function x(){return{value:void 0,done:!0}}return m.prototype=p,l(y,"constructor",p),l(p,"constructor",m),m.displayName=l(p,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),l(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new b(c(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),l(y,i,"Generator"),l(y,a,(function(){return this})),l(y,"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=w,T.prototype={constructor:T,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(C),!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 a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,s):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),s},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),C(n),s}},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 a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}));function ye(){return(ye=ne(he.mark((function e(n){var r;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,d.openLocation(n).readFile("utf8");case 3:return r=e.sent,e.next=6,new Promise((function(e){e(t(require("@gmod/ucsc-hub")))}));case 6:return e.abrupt("return",new(0,e.sent.HubFile)(r));case 11:throw e.prev=11,e.t0=e.catch(0),new Error("Not a valid hub.txt file, got error: '".concat(e.t0,"'"));case 14:case"end":return e.stop()}}),e,null,[[0,11]])})))).apply(this,arguments)}function ve(e){return be.apply(this,arguments)}function be(){return(be=ne(he.mark((function e(n){var r;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.openLocation(n).readFile("utf8");case 2:return r=e.sent,e.next=5,new Promise((function(e){e(t(require("@gmod/ucsc-hub")))}));case 5:return e.abrupt("return",new(0,e.sent.GenomesFile)(r));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ee(e){return ke.apply(this,arguments)}function ke(){return(ke=ne(he.mark((function e(n){var r;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.openLocation(n).readFile("utf8");case 2:return r=e.sent,e.next=5,new Promise((function(e){e(t(require("@gmod/ucsc-hub")))}));case 5:return e.abrupt("return",new(0,e.sent.TrackDbFile)(r));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ce(e,t,n,r){var a=[];return e.forEach((function(o,i){var l=Array.from(o.keys()),c=["superTrack","compositeTrack","container","view"];if(!l.some((function(e){return c.includes(e)}))){var s=[],d=i;do{if(d=e.get(d).get("parent")){var m=ue(d.split(" "),1);s.push(e.get(d=m[0]))}}while(d);s.reverse();var p=Te(o,s.map((function(e){return e.get("shortLabel")})),t,e,r);p.trackId="ucsc-trackhub-".concat(u.objectHash(p)),p.assemblyNames=[n],a.push(p)}})),a}function Te(e,t,n,r,a){var o=e.get("type");o||(o=r.get(e.get("parent")).get("type"));var i,l,c=o.split(" ")[0];switch("bam"===c&&e.get("bigDataUrl").toLowerCase().endsWith("cram")&&(c="cram"),i=n.uri?{uri:new URL(e.get("bigDataUrl"),n.uri).href,locationType:"UriLocation"}:{localPath:e.get("bigDataUrl"),locationType:"LocalPathLocation"},c){case"bam":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href,locationType:"UriLocation"}:{uri:new URL("".concat(e.get("bigDataUrl"),".bai"),n.uri).href,locationType:"UriLocation"}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex"),locationType:"LocalPathLocation"}:{localPath:"".concat(e.get("bigDataUrl"),".bai"),locationType:"LocalPathLocation"},{type:"AlignmentsTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BamAdapter",bamLocation:i,index:{location:l}}};case"bed":case"bed5FloatScore":case"bedGraph":case"bedRnaElements":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"bigBarChart":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i},renderer:{type:"SvgFeatureRenderer"}};case"bigBed":case"bigGenePred":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i}};case"bigChain":case"bigInteract":case"bigMaf":case"bigPsl":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i},renderer:{type:"SvgFeatureRenderer"}};case"bigWig":return{type:"QuantitativeTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigWigAdapter",bigWigLocation:i}};case"broadPeak":case"coloredExon":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"cram":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href,locationType:"UriLocation"}:{uri:new URL("".concat(e.get("bigDataUrl"),".crai"),n.uri).href,locationType:"UriLocation"}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex"),locationType:"LocalPathLocation"}:{localPath:"".concat(e.get("bigDataUrl"),".crai"),locationType:"LocalPathLocation"},{type:"AlignmentsTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"CramAdapter",cramLocation:i,craiLocation:l,sequenceAdapter:a}};case"gvf":case"ld2":case"narrowPeak":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"bigNarrowPeak":return{type:"FeatureTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"BigBedAdapter",bigBedLocation:i}};case"peptideMapping":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"vcfTabix":return l=n.uri?e.get("bigDataIndex")?{uri:new URL(e.get("bigDataIndex"),n.uri).href,locationType:"UriLocation"}:{uri:new URL("".concat(e.get("bigDataUrl"),".tbi"),n.uri).href,locationType:"UriLocation"}:e.get("bigDataIndex")?{localPath:e.get("bigDataIndex"),locationType:"LocalPathLocation"}:{localPath:"".concat(e.get("bigDataUrl"),".tbi"),locationType:"LocalPathLocation"},{type:"VariantTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"VcfTabixAdapter",vcfGzLocation:i,index:{location:l}}};case"wig":case"wigMaf":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);case"hic":return{type:"HicTrack",name:e.get("shortLabel"),description:e.get("longLabel"),category:t,adapter:{type:"HicAdapter",hicLocation:i}};case"halSnake":return m.generateUnsupportedTrackConf(e.get("shortLabel"),c,t);default:return m.generateUnknownTrackConf(e.get("shortLabel"),c,t)}}function we(e){return s.types.compose("UCSCTrackHubConnection",l.BaseConnectionModelFactory(e),s.types.model({configuration:c.ConfigurationReference(fe),type:s.types.literal("UCSCTrackHubConnection")}).actions((function(e){return{connect:function(){var t=c.getConf(e,"name"),n=c.getConf(e,"hubTxtLocation"),r=u.getSession(e);(function(e){return ye.apply(this,arguments)})(n).then((function(e){var t=n.uri?{uri:new URL(e.get("genomesFile"),n.uri).href,locationType:"UriLocation"}:{localPath:e.get("genomesFile"),locationType:"LocalPathLocation"};return Promise.all([e,ve(t)])})).then((function(a){var o,i=ue(a,2),l=i[0],u=[],s=pe(i[1]);try{var d=function(){var a=ue(o.value,2),i=a[0],s=a[1],d=c.getConf(e,"assemblyNames");if(d.length>0&&!d.includes(i))return"break";var m=r.assemblies.find((function(e){return c.readConfObject(e,"name")===i}));if(!m)throw new Error('Cannot find assembly for "'.concat(i,'" from the genomes file for connection "').concat(t,'"'));var p=n.uri?{uri:new URL(s.get("trackDb"),new URL(l.get("genomesFile"),n.uri)).href,locationType:"UriLocation"}:{localPath:s.get("trackDb"),locationType:"LocalPathLocation"};u.push(Promise.all([p,Ee(p),i,m]))};for(s.s();!(o=s.n()).done&&"break"!==d(););}catch(e){s.e(e)}finally{s.f()}return Promise.all([].concat(u))})).then((function(t){var n,r=pe(t);try{for(r.s();!(n=r.n()).done;){var a=ue(n.value,4),o=Ce(a[1],a[0],a[2],c.readConfObject(a[3],["sequence","adapter"]));e.addTrackConfs(o)}}catch(e){r.e(e)}finally{r.f()}})).catch((function(t){console.error(t),r.notify('There was a problem connecting to the UCSC Track Hub "'.concat(e.name,'". Please make sure you have entered a valid hub.txt file. The error that was thrown is: "').concat(t,'"'),"error"),r.breakConnection(e.configuration)}))}}})))}function xe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{return new URL(e),!0}catch(t){return e.startsWith("/")}}function Se(e){return s.types.model("AddTrackModel",{id:p.ElementId,type:s.types.literal("AddTrackWidget"),view:s.types.safeReference(e.pluggableMstType("view","stateModel"))}).volatile((function(){return{trackSource:"fromFile",trackData:void 0,indexTrackData:void 0,altAssemblyName:"",altTrackName:"",altTrackType:"",adapterHint:""}})).actions((function(e){return{setAdapterHint:function(t){e.adapterHint=t},setTrackSource:function(t){e.trackSource=t},setTrackData:function(t){e.trackData=t},setIndexTrackData:function(t){e.indexTrackData=t},setAssembly:function(t){e.altAssemblyName=t},setTrackName:function(t){e.altTrackName=t},setTrackType:function(t){e.altTrackType=t},clearData:function(){e.trackSource="",e.altTrackName="",e.altTrackType="",e.altAssemblyName="",e.adapterHint="",e.indexTrackData=void 0,e.trackData=void 0}}})).views((function(e){return{get trackAdapter(){var t=e.trackData;return t?m.guessAdapter(t,e.indexTrackData,e.adapterHint,e):void 0},get trackName(){return e.altTrackName||(e.trackData?m.getFileName(e.trackData):"")},get isFtp(){var t,n,r=e.trackData,a=e.indexTrackData;return!!(null!=a&&null!==(t=a.uri)&&void 0!==t&&t.startsWith("ftp://")||null!=r&&null!==(n=r.uri)&&void 0!==n&&n.startsWith("ftp://"))},get isRelativeTrackUrl(){var t,n=null===(t=e.trackData)||void 0===t?void 0:t.uri;return!!n&&!xe(n)},get isRelativeIndexUrl(){var t,n=null===(t=e.indexTrackData)||void 0===t?void 0:t.uri;return!!n&&!xe(n)},get isRelativeUrl(){return this.isRelativeIndexUrl||this.isRelativeTrackUrl},get trackHttp(){var t,n;return null===(t=e.trackData)||void 0===t||null===(n=t.uri)||void 0===n?void 0:n.startsWith("http://")},get indexHttp(){var t,n;return null===(t=e.indexTrackData)||void 0===t||null===(n=t.uri)||void 0===n?void 0:n.startsWith("http://")},get wrongProtocol(){return"https:"===window.location.protocol&&(this.trackHttp||this.indexHttp)},get unsupported(){var e;return(null===(e=this.trackAdapter)||void 0===e?void 0:e.type)===m.UNSUPPORTED},get assembly(){var t;return e.altAssemblyName||(null===(t=e.view.assemblyNames)||void 0===t?void 0:t[0])},get trackType(){return e.altTrackType||(this.trackAdapter?m.guessTrackType(this.trackAdapter.type,e):"")}}})).views((function(e){return{get warningMessage(){return e.isFtp?"Warning: JBrowse cannot access files using the ftp protocol":e.isRelativeUrl?"Warning: one or more of your files do not provide the protocol e.g.\n https://, please provide an absolute URL unless you are sure a\n relative URL is intended.":e.wrongProtocol?"Warning: You entered a http:// resources but we cannot access HTTP\n resources from JBrowse when it is running on https. Please use an\n https URL for your track, or access the JBrowse app from the http\n protocol":""}}}))}var Le=c.ConfigurationSchema("AddTrackWidget",{}),Ne=s.types.model("AddConnectionModel",{id:p.ElementId,type:s.types.literal("AddConnectionWidget")}),Ae=c.ConfigurationSchema("AddConnectionWidget",{}),De=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return!!e.find((function(e){return t.includes(e)}))};function Ie(e){if(!e.trackId)throw new Error("not a track");return c.readConfObject(e,"name")||"Reference sequence (".concat(c.readConfObject(s.getParent(e),"name"),")")}function Be(e,t,n){var r={children:[]},a=e.filterText,o=e.view;return t.filter((function(e){return t=a,r=Ie(n=e),o=c.readConfObject(n,"category")||[],i=t.toLowerCase(),!!r.toLowerCase().includes(i)||o.filter((function(e){return!!e.toLowerCase().includes(i)})).length;var t,n,r,o,i})).forEach((function(e){var t=se(c.readConfObject(e,"category")||[]);e.trackId.endsWith("sessionTrack")&&t.unshift(" Session tracks");for(var a=r,i=function(e){var r=t[e],o=a.children.find((function(e){return e.name===r})),i=t.slice(0,e+1).join(",");if(o)a=o;else{var l={children:[],name:r,id:i,isOpenByDefault:!n.get(i)};a.children.push(l),a=l}},l=0;l<t.length;l++)i(l);a.children.splice(a.children.findIndex((function(e){return e.children.length})),0,{id:e.trackId,name:Ie(e),conf:e,checked:!!o.tracks.find((function(t){return t.configuration===e})),children:[]})})),r.children}var Pe=function(e){return s.types.model("HierarchicalTrackSelectorWidget",{id:p.ElementId,type:s.types.literal("HierarchicalTrackSelectorWidget"),collapsed:s.types.map(s.types.boolean),filterText:"",view:s.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setView:function(t){e.view=t},toggleCategory:function(t){e.collapsed.set(t,!e.collapsed.get(t))},clearFilterText:function(){e.filterText=""},setFilterText:function(t){e.filterText=t}}})).views((function(t){return{getRefSeqTrackConf:function(n){var r=u.getSession(t).assemblyManager.get(n),a=null==r?void 0:r.configuration.sequence,o=e.getViewType(t.view.type);if(a){var i,l=pe(a.displays);try{var c=function(){var e=i.value;if(o.displayTypes.find((function(t){return t.name===e.type})))return{v:a}};for(l.s();!(i=l.n()).done;){var s=c();if("object"===ee(s))return s.v}}catch(e){l.e(e)}finally{l.f()}}},trackConfigurations:function(n){if(!t.view)return[];var r=u.getSession(t),a=r.tracks,o=r.assemblyManager.get(n);if(!o)return[];var i=t.getRefSeqTrackConf(n);return(i?[i]:[]).concat(se(a.filter((function(e){var t=c.readConfObject(e,"assemblyNames");return De(o.allAliases,t)})).filter((function(n){var r=e.getViewType(t.view.type).displayTypes.map((function(e){return e.name})),a=n.displays.map((function(e){return e.type}));return De(r,a)}))))},get assemblyNames(){return t.view?t.view.assemblyNames:[]},connectionTrackConfigurations:function(n,r){if(!t.view)return[];var a=r.tracks,o=u.getSession(t).assemblyManager.get(n);return o&&o.initialized?a.filter((function(e){var t=c.readConfObject(e,"assemblyNames");return De(o.allAliases,t)})).filter((function(n){var r=e.getViewType(t.view.type).displayTypes.map((function(e){return e.name})),a=n.displays.map((function(e){return e.type}));return De(r,a)})):[]},hierarchy:function(e){var n=this,r=Be(t,t.trackConfigurations(e),t.collapsed),a=u.getSession(t),o=a.connectionInstances.filter((function(t){var n=c.readConfObject(t.configuration,"assemblyNames");return 0===n.length||n.includes(e)})).map((function(t,r){var o=a.connections[r];return{id:o.connectionId,name:c.readConfObject(o,"name"),children:n.connectionHierarchy(e,t),state:{expanded:!0}}}));return{name:"Root",id:"Root",children:[{name:"Tracks",id:"Tracks",children:r}].concat(se(o))}},connectionHierarchy:function(e,n){return Be(t,t.connectionTrackConfigurations(e,n),t.collapsed)},allTracksInCategoryPath:function(e,n,r){var a=n?t.connectionHierarchy(n):t.hierarchy(r);e.forEach((function(e){a=a.get(e)||new Map}));var o={};return a.forEach((function(n,r){n.trackId?o[n.trackId]=n:o=Object.assign(o,t.allTracksInCategoryPath(e.concat([r])))})),o}}}))},je=c.ConfigurationSchema("HierarchicalTrackSelectorWidget",{}),Me=b.makeStyles((function(){return{closeDialog:{position:"absolute",right:0,top:0},dialogContainer:{margin:15},lockedPluginTooltip:{marginRight:"0.5rem"}}}));function Oe(){var e=Me();return r.createElement(g.Tooltip,{className:e.lockedPluginTooltip,title:"This plugin was installed by an administrator, you cannot remove it."},r.createElement(k,null))}function Fe(e){var t=e.onClose,n=e.plugin,a=Me();return r.createElement(g.Dialog,{open:!0,onClose:function(){return t()}},r.createElement(g.DialogTitle,null,r.createElement(g.IconButton,{className:a.closeDialog,"aria-label":"close-dialog",onClick:function(){return t()}},r.createElement(E,null))),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,"Please confirm that you want to remove ",n,":"),r.createElement(g.DialogActions,null,r.createElement(g.Button,{variant:"contained",color:"primary",onClick:function(){window.setTimeout((function(){t(n)}),500)}},"Confirm"),r.createElement(g.Button,{variant:"contained",color:"secondary",onClick:function(){t()}},"Cancel"))))}function Ue(e){var t=e.plugin,a=e.model,o=e.pluginManager,i=ue(n.useState(),2),l=i[0],c=i[1],d=u.getSession(a),m=d.sessionPlugins,p=null==m?void 0:m.some((function(e){return o.pluginMetadata[t.name].url===e.url})),f=s.getParent(a,3),h=f.jbrowse,y=f.adminMode;return r.createElement(r.Fragment,null,l?r.createElement(Fe,{plugin:l,onClose:function(e){if(e){var n=o.pluginMetadata[t.name],r=n.url||n.esmUrl||n.umdUrl||n.cjsUrl;y?h.removePlugin(r):C.isSessionWithSessionPlugins(d)&&d.removeSessionPlugin(r)}c(void 0)}}):null,r.createElement(g.ListItem,{key:t.name},y||p?r.createElement(g.IconButton,{"aria-label":"removePlugin","data-testid":"removePlugin-".concat(t.name),onClick:function(){return c(t.name)}},r.createElement(E,null)):r.createElement(Oe,null),r.createElement(g.Typography,null,t.name)))}var _e=f.observer(Ue);function Re(e){var t=e.pluginManager,n=e.model,a=t.plugins,o=a.filter((function(e){var n;return null===(n=t.pluginMetadata[e.name])||void 0===n?void 0:n.isCore})).map((function(e){return e.name})),i=a.filter((function(e){return!o.includes(e.name)}));return r.createElement(g.List,null,i.length?i.filter((function(e){return e.name.toLowerCase().includes(n.filterText.toLowerCase())})).map((function(e){return r.createElement(_e,{key:e.name,plugin:e,model:n,pluginManager:t})})):r.createElement(g.Typography,null,"No plugins currently installed"))}var We=f.observer(Re),qe=g.makeStyles((function(){return{card:{margin:"1em"},icon:{marginLeft:"0.5em",marginRight:"0.5em"},bold:{fontWeight:600},dataField:{display:"flex",alignItems:"center",margin:"0.4em 0em"}}}));function He(e){var t=e.plugin,a=e.model,o=e.adminMode,i=qe(),l=u.getSession(a),c=s.getEnv(a),d=Boolean(c.pluginManager.runtimePluginDefinitions.find((function(e){return e.url===t.url}))),m=ue(n.useState(!1),2),p=m[1],f=d||m[0],h=s.getParent(a,3).jbrowse;return r.createElement(g.Card,{variant:"outlined",key:t.name,className:i.card},r.createElement(g.CardContent,null,r.createElement("div",{className:i.dataField},r.createElement(g.Typography,{variant:"h5"},r.createElement(g.Link,{href:"".concat(t.location,"#readme"),target:"_blank",rel:"noopener"},t.name))),r.createElement("div",{className:i.dataField},r.createElement(T,{style:{marginRight:"0.5em"}}),r.createElement(g.Typography,null,t.authors.join(", "))),r.createElement(g.Typography,{className:i.bold},"Description:"),r.createElement(g.Typography,null,t.description)),r.createElement(g.CardActions,null,r.createElement(g.Button,{variant:"contained",color:"primary",disabled:f,startIcon:r.createElement(d?x:w,null),onClick:function(){o?h.addPlugin({name:t.name,url:t.url}):C.isSessionWithSessionPlugins(l)&&l.addSessionPlugin(t),p(!0)}},d?"Installed":"Install")))}var ze=f.observer(He),Ge=g.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1)},dialogContent:{display:"flex",flexDirection:"column"},expand:{transform:"rotate(0deg)",marginLeft:"auto",transition:e.transitions.create("transform",{duration:e.transitions.duration.shortest})},expandOpen:{transform:"rotate(180deg)"}}}));function Je(e){var t=e.open,a=e.onClose,o=e.model,i=Ge(),l=ue(n.useState(""),2),c=l[0],u=l[1],d=ue(n.useState(""),2),m=d[0],p=d[1],f=ue(n.useState(""),2),y=f[0],v=f[1],b=ue(n.useState(""),2),k=b[0],C=b[1],T=ue(n.useState(!1),2),w=T[0],x=T[1];function N(e){var t=e.target,n=t.name,r=t.value;"umdName"===n&&u(r),"umdUrl"===n&&p(r),"esmUrl"===n&&v(r),"cjsUrl"===n&&C(r)}var A=s.getRoot(o).jbrowse,D=Boolean(c&&m||y||k);function I(){if(D){var e={};c&&m&&(e.name=c,e.umdUrl=m),y&&(e.esmUrl=y),k&&(e.cjsUrl=k),A.addPlugin(e)}}function B(){u(""),p(""),v(""),C(""),a()}return r.createElement(g.Dialog,{open:t,onClose:B},r.createElement(g.DialogTitle,null,"Add custom plugin",r.createElement(L,{size:"medium",className:i.closeButton,onClick:function(){return a()}},r.createElement(E,null))),r.createElement("form",{onSubmit:I},r.createElement(g.DialogContent,{className:i.dialogContent},r.createElement(g.DialogContentText,null,"Enter the name of the plugin and its URL. The name should match what is defined in the plugin's build."),r.createElement(g.TextField,{id:"umd-name-input",name:"umdName",label:"Plugin name",variant:"outlined",value:c,onChange:N}),r.createElement(g.TextField,{id:"umd-url-input",name:"umdUrl",label:"Plugin URL",variant:"outlined",value:m,onChange:N}),r.createElement(g.DialogContentText,{onClick:function(){x(!w)}},r.createElement(L,{className:S(i.expand,ae({},i.expandOpen,w)),"aria-expanded":w,"aria-label":"show more"},r.createElement(h,null)),"Advanced options"),r.createElement(g.Collapse,{in:w},r.createElement("div",{className:i.dialogContent},r.createElement(g.DialogContentText,null,"The above fields assume that the plugin is built in UMD format. If your plugin is in another format, or you have additional builds you want to add (such as a CJS build for using NodeJS APIs in desktop), you can enter the URLs for those builds below."),r.createElement(g.TextField,{id:"esm-url-input",name:"esmUrl",label:"ESM build URL",variant:"outlined",value:y,onChange:N}),r.createElement(g.TextField,{id:"cjs-url-input",name:"cjsUrl",label:"CJS build URL",variant:"outlined",value:k,onChange:N})))),r.createElement(g.DialogActions,null,r.createElement(g.Button,{variant:"contained",onClick:B},"Cancel"),r.createElement(g.Button,{variant:"contained",color:"primary",onClick:I,disabled:!D},"Submit"))))}var Ve=f.observer(Je),Ye=g.makeStyles((function(e){return{root:{margin:e.spacing(1)},expandIcon:{color:"#fff"},adminBadge:{margin:"0.5em",borderRadius:3,backgroundColor:"#FFB11D",padding:"1em",display:"flex",alignContent:"center"},customPluginButton:{margin:"0.5em",display:"flex",justifyContent:"center"}}}));function Ke(e){var t=e.model,a=Ye(),o=ue(n.useState(),2),i=o[0],l=o[1],c=ue(n.useState(),2),d=c[0],m=c[1],p=ue(n.useState(!1),2),f=p[0],b=p[1],E=u.getSession(t).adminMode,k=s.getEnv(t).pluginManager;return n.useEffect((function(){var e=new AbortController,t=e.signal;return ne(he.mark((function e(){var n,r,a;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://jbrowse.org/plugin-store/plugins.json",{signal:t});case 3:if((n=e.sent).ok){e.next=9;break}return e.next=7,n.text();case 7:throw r=e.sent,new Error("Failed to fetch plugin data: ".concat(n.status," ").concat(n.statusText," ").concat(r));case 9:return e.next=11,n.json();case 11:a=e.sent,t.aborted||l(a.plugins),e.next=19;break;case 15:e.prev=15,e.t0=e.catch(0),console.error(e.t0),m(e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,15]])})))(),function(){e.abort()}}),[]),r.createElement("div",{className:a.root},E&&r.createElement(r.Fragment,null,!u.isElectron&&r.createElement("div",{className:a.adminBadge},r.createElement(v,{style:{marginRight:"0.3em"}}),r.createElement(g.Typography,null,"You are using the ",r.createElement("code",null,"admin-server"),". Any changes you make will be saved to your configuration file. You also have the ability to add custom plugins that are not in the store.")),r.createElement("div",{className:a.customPluginButton},r.createElement(g.Button,{variant:"contained",color:"primary",onClick:function(){return b(!0)}},"Add custom plugin")),r.createElement(Ve,{open:f,onClose:function(){return b(!1)},model:t})),r.createElement(g.TextField,{label:"Filter plugins",value:t.filterText,onChange:function(e){return t.setFilterText(e.target.value)},fullWidth:!0,InputProps:{endAdornment:r.createElement(g.InputAdornment,{position:"end"},r.createElement(g.IconButton,{color:"secondary",onClick:function(){return t.clearFilterText()}},r.createElement(y,null)))}}),r.createElement(g.Accordion,{defaultExpanded:!0},r.createElement(g.AccordionSummary,{expandIcon:r.createElement(h,{className:a.expandIcon})},r.createElement(g.Typography,{variant:"h5"},"Installed plugins")),r.createElement("div",{style:{margin:"1em"}},r.createElement(We,{pluginManager:k,model:t}))),r.createElement(g.Accordion,{defaultExpanded:!0},r.createElement(g.AccordionSummary,{expandIcon:r.createElement(h,{className:a.expandIcon})},r.createElement(g.Typography,{variant:"h5"},"Available plugins")),d?r.createElement(g.Typography,{color:"error"},"".concat(d)):i?i.filter((function(e){return!!(u.isElectron||e.esmUrl||e.url||e.umdUrl)&&e.name.toLowerCase().includes(t.filterText.toLowerCase())})).map((function(e){return r.createElement(ze,{key:e.name,plugin:e,model:t,adminMode:!!E})})):r.createElement(g.Typography,null,"Loading...")))}var Qe={__proto__:null,default:f.observer(Ke)};function Xe(e){return s.types.model("PluginStoreModel",{id:p.ElementId,type:s.types.literal("PluginStoreWidget"),filterText:"",view:s.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{clearFilterText:function(){e.filterText=""},setFilterText:function(t){e.filterText=t}}}))}var $e=c.ConfigurationSchema("PluginStoreWidget",{}),Ze=n.lazy((function(){return Promise.resolve().then((function(){return nt}))})),et=n.lazy((function(){return Promise.resolve().then((function(){return mt}))})),tt=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&&ie(e,t)}(l,i);var t,r=ce(l);function l(){var e;return re(this,l),(e=r.apply(this,arguments)).name="DataManagementPlugin",e.exports={AssemblyManager:et,SetDefaultSession:Ze},e}return(t=[{key:"install",value:function(e){e.addConnectionType((function(){return new a({name:"UCSCTrackHubConnection",configSchema:fe,stateModel:we(e),displayName:"UCSC Track Hub",description:"A track or assembly hub in the Track Hub format",url:"//genome.ucsc.edu/goldenPath/help/hgTrackHubHelp.html#Intro"})})),e.addWidgetType((function(){return new o({name:"HierarchicalTrackSelectorWidget",heading:"Available tracks",configSchema:je,stateModel:Pe(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return St}))}))})})),e.addWidgetType((function(){return new o({name:"AddTrackWidget",heading:"Add a track",configSchema:Le,stateModel:Se(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Wt}))}))})})),e.addWidgetType((function(){return new o({name:"AddConnectionWidget",heading:"Add a connection",configSchema:Ae,stateModel:Ne,ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Vt}))}))})})),e.addWidgetType((function(){return new o({name:"PluginStoreWidget",heading:"Plugin store",configSchema:$e,stateModel:Xe(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Qe}))}))})}))}},{key:"configure",value:function(e){}}])&&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)}}(l.prototype,t),l}(),nt={__proto__:null,default:f.observer((function(e){var t,n=e.rootModel,a=e.onClose;if(!n)return null;if("object"!==ee(t=n)||!t||!("jbrowse"in t))return console.error("Incorrect rootmodel"),null;var o=n.jbrowse,i=n.session;return r.createElement(g.Dialog,{open:!0,onClose:a},r.createElement(g.DialogTitle,null,"Set default session"),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,'Select "Set current session as default" to make your current session saved to the config file. You can also hit "Clear default session", which would remove the default session from the config.')),r.createElement(g.DialogActions,null,r.createElement(g.Button,{variant:"contained",onClick:function(){o.setDefaultSessionConf({name:"New session"}),a()}},"Clear default session"),r.createElement(g.Button,{color:"secondary",variant:"contained",onClick:function(){return a()}},"Cancel"),r.createElement(g.Button,{color:"primary",variant:"contained",onClick:function(){o.setDefaultSessionConf(i),a()}},"Set current session as default")))}))},rt=g.makeStyles((function(){return{table:{minWidth:500,minHeight:150},buttonCell:{padding:3},button:{display:"inline-block",padding:3,minHeight:0,minWidth:0}}})),at=f.observer((function(e){var t=e.rootModel,n=e.setIsAssemblyBeingEdited,a=e.setAssemblyBeingEdited,o=rt(),i=t.jbrowse.assemblies.map((function(e){var i=c.readConfObject(e,"name"),l=c.readConfObject(e,"displayName"),u=c.readConfObject(e,"aliases");return r.createElement(g.TableRow,{key:i},r.createElement(g.TableCell,null,i),r.createElement(g.TableCell,null,l),r.createElement(g.TableCell,null,u?u.toString():""),r.createElement(g.TableCell,{className:o.buttonCell},r.createElement(g.IconButton,{"data-testid":"".concat(i,"-edit"),className:o.button,onClick:function(){n(!0),a(e)}},r.createElement(A,{color:"primary"})),r.createElement(g.IconButton,{"data-testid":"".concat(i,"-delete"),className:o.button,onClick:function(){!function(e){t.jbrowse.removeAssemblyConf(e)}(i)}},r.createElement(D,{color:"error"}))))}));return r.createElement(g.TableContainer,{component:g.Paper},r.createElement(g.Table,{className:o.table},r.createElement(g.TableHead,null,r.createElement(g.TableRow,null,r.createElement(g.TableCell,null,r.createElement(g.Typography,{variant:"h5"},"Name")),r.createElement(g.TableCell,null,r.createElement(g.Typography,{variant:"h5"},"Display name")),r.createElement(g.TableCell,null,r.createElement(g.Typography,{variant:"h5"},"Aliases")),r.createElement(g.TableCell,null,r.createElement(g.Typography,{variant:"h5"},"Actions")))),r.createElement(g.TableBody,null,i)))})),ot=g.makeStyles((function(e){return{root:{flexGrow:1,overflow:"hidden",padding:e.spacing(0,3)},paper:{margin:"".concat(e.spacing(1),"px auto"),padding:e.spacing(2)},createButton:{marginTop:"1em",justifyContent:"center"},paperContent:{flex:"auto",margin:"".concat(e.spacing(1),"px auto"),padding:e.spacing(1),overflow:"auto"}}})),it=f.observer((function(e){var t=e.setAdapterSelection;return r.createElement(g.TextField,{value:e.adapterSelection,label:"Type",select:!0,helperText:"Type of adapter to use",fullWidth:!0,onChange:function(e){t(e.target.value)}},e.adapterTypes.map((function(e){return r.createElement(g.MenuItem,{key:e,value:e},e)})))})),lt=f.observer((function(e){var t=e.adapterSelection,n=e.setFastaLocation,a=e.faiLocation,o=e.setFaiLocation,i=e.gziLocation,l=e.setGziLocation,c=e.twoBitLocation,u=e.setTwoBitLocation,s=e.chromSizesLocation,d=e.setChromSizesLocation;return"IndexedFastaAdapter"===t||"BgzipFastaAdapter"===t?r.createElement(g.Grid,{container:!0,spacing:2},r.createElement(g.Grid,{item:!0},r.createElement(I,{name:"fastaLocation",location:e.fastaLocation,setLocation:function(e){return n(e)}})),r.createElement(g.Grid,{item:!0},r.createElement(I,{name:"faiLocation",location:a,setLocation:function(e){return o(e)}})),"BgzipFastaAdapter"===t?r.createElement(g.Grid,{item:!0},r.createElement(I,{name:"gziLocation",location:i,setLocation:function(e){return l(e)}})):null):"TwoBitAdapter"===t?r.createElement(g.Grid,{container:!0,spacing:2},r.createElement(g.Grid,{item:!0},r.createElement(I,{name:"twoBitLocation",location:c,setLocation:function(e){return u(e)}})),r.createElement(g.Grid,{item:!0},r.createElement(I,{name:"chromSizesLocation (optional, can be added to speed up loading 2bit files with many contigs)",location:s,setLocation:function(e){return d(e)}}))):null})),ct={uri:""},ut=f.observer((function(e){var t=e.rootModel,a=e.setFormOpen,o=ot(),i=["IndexedFastaAdapter","BgzipFastaAdapter","TwoBitAdapter"],l=ue(n.useState(""),2),c=l[0],u=l[1],s=ue(n.useState(""),2),d=s[0],m=s[1],p=ue(n.useState(i[0]),2),f=p[0],h=p[1],y=ue(n.useState(ct),2),v=y[0],b=y[1],E=ue(n.useState(ct),2),k=E[0],C=E[1],T=ue(n.useState(ct),2),x=T[0],S=T[1],L=ue(n.useState(ct),2),N=L[0],A=L[1],D=ue(n.useState(ct),2),I=D[0],B=D[1];return r.createElement("div",{className:o.root},r.createElement(g.Paper,{className:o.paper},r.createElement(g.TextField,{id:"assembly-name",inputProps:{"data-testid":"assembly-name"},label:"Assembly name",helperText:"The assembly name e.g. hg38",variant:"outlined",value:c,onChange:function(e){return u(e.target.value)}}),r.createElement(g.TextField,{id:"assembly-name",inputProps:{"data-testid":"assembly-display-name"},label:"Assembly display name",helperText:'A human readable display name for the assembly e.g. "Homo sapiens (hg38)"',variant:"outlined",value:d,onChange:function(e){return m(e.target.value)}}),r.createElement(it,{adapterSelection:f,setAdapterSelection:h,adapterTypes:i}),r.createElement("div",{className:o.paperContent},r.createElement(lt,{adapterSelection:f,fastaLocation:v,setFastaLocation:b,faiLocation:k,setFaiLocation:C,gziLocation:x,setGziLocation:S,twoBitLocation:N,setTwoBitLocation:A,chromSizesLocation:I,setChromSizesLocation:B}))),r.createElement(g.Grid,{container:!0,className:o.createButton},r.createElement(g.Grid,{item:!0},r.createElement(g.Button,{variant:"contained",color:"secondary",startIcon:r.createElement(w,null),onClick:function(){var e;""===c?t.session.notify("Can't create an assembly without a name"):(a(!1),"IndexedFastaAdapter"===f?e={name:c,displayName:d,sequence:{adapter:{type:"IndexedFastaAdapter",fastaLocation:v,faiLocation:k}}}:"BgzipFastaAdapter"===f?e={name:c,displayName:d,sequence:{adapter:{type:"BgzipFastaAdapter",fastaLocation:v,faiLocation:k,gziLocation:x}}}:"TwoBitAdapter"===f&&(e={name:c,displayName:d,sequence:{adapter:{type:"TwoBitAdapter",twoBitLocation:N,chromSizesLocation:I}}}),t.jbrowse.addAssemblyConf(e),t.session.notify("Successfully added ".concat(c," assembly to JBrowse 2"),"success"))}},"Create new assembly"))))})),st=f.observer((function(e){return r.createElement(B.ConfigurationEditor,{model:{target:e.assembly}})})),dt=b.makeStyles((function(e){return{titleBox:{color:"#fff",backgroundColor:e.palette.primary.main,textAlign:"center"},dialogContent:{width:"100%"},backButton:{color:"#fff",position:"absolute",left:e.spacing(4),top:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),mt={__proto__:null,default:f.observer((function(e){var t,a=e.rootModel,o=e.onClose,i=dt(),l=ue(n.useState(!1),2),c=l[0],u=l[1],s=ue(n.useState(!1),2),d=s[0],m=s[1],p=ue(n.useState(),2),f=p[0],h=p[1],y=!c&&!d;return r.createElement(g.Dialog,{open:!0,onClose:function(){return o(!1)}},r.createElement(g.DialogTitle,{className:i.titleBox},y?"Assembly manager":null,c?r.createElement(r.Fragment,null,r.createElement(g.IconButton,{"aria-label":"back",className:i.backButton,onClick:function(){return u(!1)}},r.createElement(N,null)),"Add new assembly"):null,d?r.createElement(r.Fragment,null,r.createElement(g.IconButton,{"aria-label":"back",className:i.backButton,onClick:function(){return m(!1)}},r.createElement(N,null)),void 0!==(t=f)?t.name:null):null,r.createElement(g.IconButton,{"aria-label":"close",className:i.closeButton,onClick:function(){return o(!1)}},r.createElement(E,null))),r.createElement(g.DialogContent,null,r.createElement("div",{className:i.dialogContent},y?r.createElement(at,{rootModel:a,setIsAssemblyBeingEdited:m,setAssemblyBeingEdited:h}):null,d?r.createElement(st,{assembly:f}):null,c?r.createElement(ut,{rootModel:a,setFormOpen:u}):null)),r.createElement(g.DialogActions,null,y?r.createElement(r.Fragment,null,r.createElement(g.Button,{color:"secondary",variant:"contained",onClick:function(){return o(!1)}},"Close"),r.createElement(g.Button,{variant:"contained",color:"secondary",startIcon:r.createElement(w,null),onClick:function(){return u(!0)}},"Add new assembly")):null))}))},pt=n.lazy((function(){return Promise.resolve().then((function(){return Kt}))})),ft=n.lazy((function(){return Promise.resolve().then((function(){return Xt}))})),gt=n.lazy((function(){return Promise.resolve().then((function(){return en}))})),ht=n.lazy((function(){return Promise.resolve().then((function(){return rn}))})),yt=g.makeStyles((function(e){var t,n;return{searchBox:{marginBottom:e.spacing(2)},menuIcon:{marginRight:e.spacing(1),marginBottom:0},fab:{position:"absolute",bottom:e.spacing(6),right:e.spacing(6)},compactCheckbox:{padding:0},checkboxLabel:{marginRight:0,"&:hover":{backgroundColor:"#eee"}},accordionBase:{display:"flex"},accordionCard:{padding:3,cursor:"pointer",display:"flex"},nestingLevelMarker:{position:"absolute",borderLeft:"1.5px solid #555"},accordionColor:{background:null===(t=e.palette.tertiary)||void 0===t?void 0:t.main,color:null===(n=e.palette.tertiary)||void 0===n?void 0:n.contrastText,width:"100%",display:"flex",paddingLeft:5},accordionText:{margin:"auto 0"}}})),vt=function(e){var t=e.data,n=e.isOpen,a=e.style,o=e.setOpen,i=t.isLeaf,l=t.nestingLevel,u=t.checked,s=t.id,d=t.name,m=t.onChange,p=t.toggleCollapse,f=t.conf,h=t.onMoreInfo,y=t.drawerPosition,v=yt(),b=10*l+(i?10:0),E=d&&(d.endsWith("(Unsupported)")||d.endsWith("(Unknown)")),k=f&&c.readConfObject(f,["description"])||"";return r.createElement("div",{style:a,className:i?void 0:v.accordionBase},new Array(l).fill(0).map((function(e,t){return r.createElement("div",{key:"mark-".concat(t),style:{left:10*t+4,height:a.height},className:v.nestingLevelMarker})})),r.createElement("div",{className:i?void 0:v.accordionCard,onClick:function(){p(s),o(!n)},style:{marginLeft:b,whiteSpace:"nowrap",width:"100%"}},r.createElement("div",{className:i?void 0:v.accordionColor},i?r.createElement(r.Fragment,null,r.createElement(g.Tooltip,{title:k,placement:"left"===y?"right":"left"},r.createElement(g.FormControlLabel,{className:v.checkboxLabel,control:r.createElement(g.Checkbox,{className:v.compactCheckbox,checked:u,onChange:function(){return m(s)},color:"primary",disabled:E,inputProps:{"data-testid":"htsTrackEntry-".concat(s)}}),label:d})),r.createElement(g.IconButton,{onClick:function(e){return h({target:e.currentTarget,id:s,conf:f})},color:"secondary","data-testid":"htsTrackEntryMenu-".concat(s)},r.createElement(O,null))):r.createElement("div",{className:v.accordionText},r.createElement(g.Typography,null,r.createElement(n?P:j,null),d)))))},bt=function(e,t,n){var r=!!e.conf;return{data:Z(Z({defaultHeight:r?22:40,isLeaf:r,isOpenByDefault:!0,nestingLevel:t},e),n),nestingLevel:t,node:e}},Et=f.observer((function(e){var t,a=e.height,o=e.tree,i=e.model,l=i.filterText,c=i.view,s=n.useRef(null),d=ue(n.useState(),2),m=d[0],p=d[1],f=u.getSession(i),g=f.drawerPosition,h=n.useMemo((function(){return{onChange:function(e){return c.toggleTrack(e)},toggleCollapse:function(e){return i.toggleCategory(e)},onMoreInfo:p,drawerPosition:g}}),[c,i,g]),y=n.useCallback(he.mark((function e(){var t,n,r,a;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=0;case 1:if(!(t<o.children.length)){e.next=7;break}return e.next=4,bt(o.children[t],0,h);case 4:t++,e.next=1;break;case 7:return void(e.next=10);case 10:n=e.sent,r=0;case 12:if(!(r<n.node.children.length)){e.next=19;break}return a=n.node.children[r],e.next=16,bt(a,n.nestingLevel+1,h);case 16:r++,e.next=12;break;case 19:e.next=7;break;case 21:case"end":return e.stop()}}),e)})),[o,h]),v=null==m?void 0:m.conf,b=v&&(null===(t=f.getTrackActionMenuItems)||void 0===t?void 0:t.call(f,v))||[];return n.useEffect((function(){s.current.recomputeTree({refreshNodes:!0,useDefaultHeight:!0})}),[o,l]),r.createElement(r.Fragment,null,r.createElement(R.VariableSizeTree,{ref:s,treeWalker:y,height:a},vt),r.createElement(_,{anchorEl:null==m?void 0:m.target,menuItems:b,onMenuItemClick:function(e,t){t(),p(void 0)},open:Boolean(m),onClose:function(){return p(void 0)}}))})),kt=function(e){var t=e.tree,n=e.model,a=e.offset;return"undefined"==typeof jest?r.createElement(U,{disableWidth:!0},(function(e){return r.createElement(Et,{height:e.height-a,model:n,tree:t})})):r.createElement(Et,{height:9e3,model:n,tree:t})},Ct=function(e){var t=e.overrideDimensions,n=e.children;return t?r.createElement("div",{style:Z({},t)},n):r.createElement(r.Fragment,null,n)},Tt=f.observer((function(e){var t=e.model,a=e.toolbarHeight,o=e.overrideDimensions,i=yt(),l=u.getSession(t),c=ue(n.useState(null),2),s=c[0],d=c[1];function m(){d(null)}return r.createElement(Ct,{overrideDimensions:o},r.createElement(xt,{model:t,toolbarHeight:a,overrideDimensions:o}),r.createElement(g.Fab,{color:"secondary",className:i.fab,onClick:function(e){d(e.currentTarget)}},r.createElement(w,null)),r.createElement(g.Menu,{anchorEl:s,open:Boolean(s),onClose:function(){return d(null)}},r.createElement(g.MenuItem,{onClick:function(){m();var e=l.addWidget("AddConnectionWidget","addConnectionWidget");l.showWidget(e)}},"Add connection"),r.createElement(g.MenuItem,{onClick:function(){m();var e=l.addWidget("AddTrackWidget","addTrackWidget",{view:t.view.id});l.showWidget(e)}},"Add track")))})),wt=f.observer((function(e){var t=e.model,a=e.setHeaderHeight,o=e.setAssemblyIdx,i=e.assemblyIdx,l=yt(),s=u.getSession(t),d=ue(n.useState(),2),m=d[0],p=d[1],f=ue(n.useState(),2),h=f[0],v=f[1],b=ue(n.useState(),2),E=b[0],k=b[1],C=ue(n.useState(),2),T=C[0],w=C[1],x=ue(n.useState(!1),2),S=x[0],L=x[1],N=ue(n.useState(!1),2),A=N[0],D=N[1],I=t.assemblyNames,B=I[i];function P(e,t){var n=c.readConfObject(e,"name"),r=s.prepareToBreakConnection(e);if(r){var a=ue(r,2),o=a[0],i=a[1];Object.keys(i).length>0?k({connectionConf:e,safelyBreakConnection:o,dereferenceTypeCount:i,name:n}):o()}t&&w({name:n,connectionConf:e})}var j=[{label:"Turn on/off connections...",onClick:function(){return D(!0)}},{label:"Delete connections...",onClick:function(){return L(!0)}}],O=I.length>1?[{label:"Select assembly...",subMenu:I.map((function(e,t){return{label:e,onClick:function(){o(t)}}}))}]:[],U=[{label:"Add track...",onClick:function(){s.showWidget(s.addWidget("AddTrackWidget","addTrackWidget",{view:t.view.id}))}}].concat(O);return r.createElement("div",{ref:function(e){return a((null==e?void 0:e.getBoundingClientRect().height)||0)},"data-testid":"hierarchical_track_selector"},r.createElement("div",{style:{display:"flex"}},r.createElement(g.IconButton,{className:l.menuIcon,onClick:function(e){v(e.currentTarget)}},r.createElement(M,null)),r.createElement(g.IconButton,{className:l.menuIcon,onClick:function(e){p(e.currentTarget)}},r.createElement(F,null)),r.createElement(g.TextField,{className:l.searchBox,label:"Filter tracks",value:t.filterText,onChange:function(e){return t.setFilterText(e.target.value)},fullWidth:!0,InputProps:{endAdornment:r.createElement(g.InputAdornment,{position:"end"},r.createElement(g.IconButton,{color:"secondary",onClick:t.clearFilterText},r.createElement(y,null)))}})),r.createElement(_,{anchorEl:m,open:Boolean(m),onMenuItemClick:function(e,t){t(),p(void 0)},onClose:function(){p(void 0)},menuItems:[{label:"Add connection",onClick:function(){s.showWidget(s.addWidget("AddConnectionWidget","addConnectionWidget"))}}].concat(j)}),r.createElement(_,{anchorEl:h,open:Boolean(h),onMenuItemClick:function(e,t){t(),v(void 0)},onClose:function(){v(void 0)},menuItems:U}),r.createElement(n.Suspense,{fallback:r.createElement("div",null)},E?r.createElement(pt,{modalInfo:E,setModalInfo:k,session:s}):T?r.createElement(ft,{handleClose:function(){w(void 0)},deleteDialogDetails:T,session:s}):null,S?r.createElement(gt,{handleClose:function(){return L(!1)},breakConnection:P,session:s}):null,A?r.createElement(ht,{handleClose:function(){return D(!1)},session:s,breakConnection:P,assemblyName:B}):null))})),xt=f.observer((function(e){var t=e.model,a=e.toolbarHeight,o=void 0===a?0:a,i=ue(n.useState(0),2),l=i[0],c=i[1],u=ue(n.useState(0),2),s=u[0],d=t.assemblyNames[l];return d?r.createElement(r.Fragment,null,r.createElement(wt,{model:t,setHeaderHeight:u[1],setAssemblyIdx:c,assemblyIdx:l}),r.createElement(kt,{tree:t.hierarchy(d),model:t,offset:o+s})):null})),St={__proto__:null,default:Tt},Lt=g.makeStyles((function(e){return{spacing:{marginBottom:e.spacing(3)}}}));function Nt(e){var t,n=e.trackAdapter,a=e.trackType,o=Lt();return"SNPCoverageAdapter"===n.type?r.createElement(g.Typography,{className:o.spacing},"Selected ",r.createElement("code",null,a),". Using adapter"," ",r.createElement("code",null,n.type)," with subadapter"," ",r.createElement("code",null,null===(t=n.subadapter)||void 0===t?void 0:t.type),". Please enter a track name and, if necessary, update the track type."):r.createElement(g.Typography,{className:o.spacing},"Using adapter ",r.createElement("code",null,n.type)," and guessing track type"," ",r.createElement("code",null,a),". Please enter a track name and, if necessary, update the track type.")}var At=f.observer((function(e){var t,n,a,o=e.model,i=Lt(),l=u.getSession(o),c=o.trackAdapter,d=s.getEnv(l).pluginManager.getElementTypesInGroup("adapter");return r.createElement(g.TextField,{className:i.spacing,value:"UNKNOWN"!==(null==c?void 0:c.type)?null==c?void 0:c.type:"",label:"adapterType",helperText:"Select an adapter type",select:!0,fullWidth:!0,onChange:function(e){return o.setAdapterHint(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"adapterTypeSelect"}}},d.filter((function(e){var t,n;return!(null!==(t=e.adapterMetadata)&&void 0!==t&&t.hiddenFromGUI||null!==(n=e.adapterMetadata)&&void 0!==n&&n.category)})).map((function(e){var t,n;return r.createElement(g.MenuItem,{key:e.name,value:e.name},null!==(t=e.adapterMetadata)&&void 0!==t&&t.displayName?null===(n=e.adapterMetadata)||void 0===n?void 0:n.displayName:e.name)})),(t=d.filter((function(e){var t;return!(null!==(t=e.adapterMetadata)&&void 0!==t&&t.hiddenFromGUI)})),n="",a=[],t.forEach((function(e){var t,o,i,l,c,u,s,d;null!==(t=e.adapterMetadata)&&void 0!==t&&t.category&&(n!==(null===(o=e.adapterMetadata)||void 0===o?void 0:o.category)&&(n=null===(c=e.adapterMetadata)||void 0===c?void 0:c.category,a.push(r.createElement(g.ListSubheader,{key:null===(u=e.adapterMetadata)||void 0===u?void 0:u.category,value:null===(s=e.adapterMetadata)||void 0===s?void 0:s.category},null===(d=e.adapterMetadata)||void 0===d?void 0:d.category))),a.push(r.createElement(g.MenuItem,{key:e.name,value:e.name},null!==(i=e.adapterMetadata)&&void 0!==i&&i.displayName?null===(l=e.adapterMetadata)||void 0===l?void 0:l.displayName:e.name)))})),a))}));function Dt(e){var t=e.model,n=Lt();return r.createElement(r.Fragment,null,r.createElement(g.Typography,{className:n.spacing},"JBrowse was not able to guess the adapter type for this data, but it may be in the list below. If not, you can"," ",r.createElement(g.Link,{href:"https://github.com/GMOD/jbrowse-components/releases",target:"_blank",rel:"noopener noreferrer"},"check for new releases")," ","of JBrowse to see if they support this data type or"," ",r.createElement(g.Link,{href:"https://github.com/GMOD/jbrowse-components/issues/new",target:"_blank",rel:"noopener noreferrer"},"file an issue")," ","and add a feature request for this data type."),r.createElement(At,{model:t}))}var It=f.observer((function(e){var t=e.model,n=Lt(),a=u.getSession(t),o=t.trackType,i=s.getEnv(a).pluginManager.getElementTypesInGroup("track");return r.createElement(g.TextField,{className:n.spacing,value:o,label:"trackType",helperText:"Select a track type",select:!0,fullWidth:!0,onChange:function(e){t.setTrackType(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"trackTypeSelect"}}},i.map((function(e){var t=e.name;return r.createElement(g.MenuItem,{key:t,value:t},t)})))})),Bt=f.observer((function(e){var t=e.model,n=u.getSession(t);return r.createElement(g.TextField,{value:t.assembly,label:"assemblyName",helperText:"Assembly to which the track will be added",select:!0,fullWidth:!0,onChange:function(e){return t.setAssembly(e.target.value)},SelectProps:{SelectDisplayProps:{"data-testid":"assemblyNameSelect"}}},n.assemblies.map((function(e){return c.readConfObject(e,"name")})).map((function(e){return r.createElement(g.MenuItem,{key:e,value:e},e)})))}));function Pt(e){var t=e.model,n=Lt(),a=t.trackName,o=t.trackAdapter,i=t.trackType,l=t.warningMessage,c=t.adapterHint;return t.unsupported?r.createElement(g.Typography,{className:n.spacing},"This version of JBrowse cannot display data of this type. It is possible, however, that there is a newer version that can display them. You can"," ",r.createElement(g.Link,{href:"https://github.com/GMOD/jbrowse-components/releases",target:"_blank",rel:"noopener noreferrer"},"check for new releases")," ","of JBrowse or"," ",r.createElement(g.Link,{href:"https://github.com/GMOD/jbrowse-components/issues/new",target:"_blank",rel:"noopener noreferrer"},"file an issue")," ","and add a feature request for this data type."):(null==o?void 0:o.type)===m.UNKNOWN?r.createElement(Dt,{model:t}):(""===c&&o&&t.setAdapterHint(o.type),null!=o&&o.type?r.createElement("div",null,o?r.createElement(Nt,{trackAdapter:o,trackType:i}):null,l?r.createElement(g.Typography,{style:{color:"orange"}},l):null,r.createElement(g.TextField,{className:n.spacing,label:"trackName",helperText:"A name for this track",fullWidth:!0,value:a,onChange:function(e){return t.setTrackName(e.target.value)},inputProps:{"data-testid":"trackNameInput"}}),r.createElement(At,{model:t}),r.createElement(It,{model:t}),r.createElement(Bt,{model:t})):r.createElement(g.Typography,null,"Could not recognize this data type."))}var jt=f.observer(Pt),Mt=g.makeStyles((function(e){return{paper:{display:"flex",flexDirection:"column",padding:e.spacing(1)},spacer:{height:e.spacing(8)}}}));function Ot(e){var t=e.model,n=Mt(),a=s.getRoot(t);return r.createElement(g.Paper,{className:n.paper},r.createElement(q.FileSelector,{name:"Main file",description:"",location:t.trackData,setLocation:t.setTrackData,setName:t.setTrackName,rootModel:a}),r.createElement("div",{className:n.spacer}),r.createElement(q.FileSelector,{name:"Index file",description:"(Optional) The URL of the index file is automatically inferred from the URL of the main file if it is not supplied.",location:t.indexTrackData,setLocation:t.setIndexTrackData,setName:t.setTrackName,rootModel:a}))}var Ft=f.observer(Ot),Ut=g.makeStyles((function(e){return{root:{marginTop:e.spacing(1)},stepper:{backgroundColor:e.palette.background.default},button:{marginTop:e.spacing(1),marginRight:e.spacing(1)},actionsContainer:{marginBottom:e.spacing(2)},stepContent:{margin:e.spacing(1)},alertContainer:{padding:"".concat(e.spacing(2),"px 0px ").concat(e.spacing(2),"px 0px")}}})),_t=["Enter track data","Confirm track type"];function Rt(e){var t=e.model,a=ue(n.useState(0),2),o=a[0],i=a[1],l=Ut(),s=u.getSession(t),d=t.assembly,m=t.trackAdapter,p=t.trackData,f=t.trackName,h=t.trackType,y=ue(n.useState(),2),v=y[0],b=y[1];function E(){return k.apply(this,arguments)}function k(){return(k=ne(he.mark((function e(){var n,r;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o===_t.length-1){e.next=3;break}return i(o+1),e.abrupt("return");case 3:n="".concat(f.toLowerCase().replace(/ /g,"_"),"-").concat(Date.now()).concat(s.adminMode?"":"-sessionTrack"),r=s.assemblyManager.get(d),m&&"UNKNOWN"!==m.type?(s.addTrackConf({trackId:n,type:h,name:f,assemblyNames:[d],adapter:Z(Z({},m),{},{sequenceAdapter:c.getConf(r,["sequence","adapter"])})}),t.view?t.view.showTrack(n):s.notify("Open a new view, or use the track selector in an existing view, to view this track","info"),t.clearData(),s.hideWidget(t)):b("Failed to add track.\nThe configuration of this file is not currently supported.");case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function C(){b(void 0),i(o-1)}function T(){switch(o){case 0:return!p;case 1:return!(f&&h&&null!=m&&m.type&&d);default:return!0}}return r.createElement("div",{className:l.root},r.createElement(g.Stepper,{className:l.stepper,activeStep:o,orientation:"vertical"},_t.map((function(e,n){return r.createElement(g.Step,{key:e},r.createElement(g.StepLabel,null,e),r.createElement(g.StepContent,null,function(e){switch(e){case 0:return r.createElement(Ft,{model:t});case 1:return r.createElement(jt,{model:t});default:return r.createElement(g.Typography,null,"Unknown step")}}(n),r.createElement("div",{className:l.actionsContainer},r.createElement(g.Button,{disabled:0===o,onClick:C,className:l.button},"Back"),r.createElement(g.Button,{disabled:T(),variant:"contained",color:"primary",onClick:E,className:l.button,"data-testid":"addTrackNextButton"},o===_t.length-1?"Add":"Next")),v?r.createElement("div",{className:l.alertContainer},r.createElement(W.Alert,{severity:"error"},v)):null))}))))}var Wt={__proto__:null,default:f.observer(Rt)},qt=f.observer((function(e){var t=e.model,a=e.setModelReady,o=e.connectionType.configEditorComponent||B.ConfigurationEditor;return r.createElement(n.Suspense,{fallback:r.createElement("div",null,"Loading...")},r.createElement(o,{model:{target:t},setModelReady:a}))}));function Ht(e){var t=e.connectionTypeChoices,a=e.connectionType,o=e.setConnectionType;return n.useEffect((function(){a.name||o(t[0])})),a.name?r.createElement("form",{autoComplete:"off"},r.createElement(Q,{value:a.name,label:"connectionType",helperText:a.description?r.createElement(r.Fragment,null,a.description,a.url?r.createElement(L,{href:a.url,rel:"noopener noreferrer",target:"_blank",color:"secondary"},r.createElement(X,null)):null):null,select:!0,fullWidth:!0,onChange:function(e){o(t.find((function(t){return t.name===e.target.value})))},variant:"outlined"},t.map((function(e){return r.createElement(K,{key:e.name,value:e.name},e.displayName||e.name)})))):null}var zt=b.makeStyles((function(e){return{root:{marginTop:e.spacing(1)},stepper:{backgroundColor:e.palette.background.default},button:{marginTop:e.spacing(1),marginRight:e.spacing(1)},actionsContainer:{marginBottom:e.spacing(2)}}})),Gt=["Select a Connection Type","Configure Connection"];function Jt(e){var t=e.model,a=ue(n.useState({}),2),o=a[0],i=a[1],l=ue(n.useState({}),2),c=l[0],d=l[1],m=ue(n.useState(!0),2),p=m[0],f=m[1],g=ue(n.useState(0),2),h=g[0],y=g[1],v=zt(),b=u.getSession(t),E=s.getEnv(b).pluginManager;function k(e){i(e),d(e.configSchema.create({connectionId:"".concat(e.name,"-").concat(Date.now())},s.getEnv(t)))}function C(){var e;h===Gt.length-1?(e=b.addConnectionConf(c),b.makeConnection(e),b.hideWidget(t)):y(h+1)}function T(){y(h-1)}return r.createElement("div",{className:v.root},r.createElement(V,{className:v.stepper,activeStep:h,orientation:"vertical"},Gt.map((function(e){return r.createElement(z,{key:e},r.createElement(J,null,e),r.createElement(G,null,function(){switch(h){case 0:return r.createElement(Ht,{connectionTypeChoices:E.getElementTypesInGroup("connection"),connectionType:o,setConnectionType:k});case 1:return r.createElement(qt,{connectionType:o,model:c,setModelReady:f});default:return r.createElement(Y,null,"Unknown step")}}(),r.createElement("div",{className:v.actionsContainer},r.createElement(H,{disabled:0===h,onClick:T,className:v.button},"Back"),r.createElement(H,{disabled:!(0===h&&o.name||1===h&&c&&p),variant:"contained",color:"primary",onClick:C,className:v.button,"data-testid":"addConnectionNext"},h===Gt.length-1?"Connect":"Next"))))}))))}Jt.propTypes={model:f.PropTypes.observableObject.isRequired};var Vt={__proto__:null,default:f.observer(Jt)};function Yt(e){var t=e.modalInfo,n=void 0===t?{}:t,a=e.setModalInfo,o=n.dereferenceTypeCount,i=n.safelyBreakConnection;return r.createElement(g.Dialog,{open:!0},r.createElement(g.DialogTitle,null,'Close connection "',n.name,'"'),r.createElement(g.DialogContent,null,o?r.createElement(r.Fragment,null,r.createElement(g.DialogContentText,null,"Closing this connection will close:"),r.createElement(g.List,null,Object.entries(o).map((function(e){var t=ue(e,2),n=t[0];return r.createElement(g.ListItem,{key:n},"".concat(t[1]," ").concat(n))})))):null,r.createElement(g.DialogContentText,null,"Are you sure you want to close this connection?")),r.createElement(g.DialogActions,null,r.createElement(g.Button,{onClick:function(){a()},color:"primary"},"Cancel"),r.createElement(g.Button,{variant:"contained",onClick:n?function(){i&&i(),a()}:function(){},color:"primary"},"OK")))}var Kt={__proto__:null,default:f.observer(Yt)};function Qt(e){var t=e.deleteDialogDetails,n=e.session,a=e.handleClose,o=t.connectionConf;return r.createElement(g.Dialog,{open:!0},r.createElement(g.DialogTitle,null,'Delete connection "',t.name,'"'),r.createElement(g.DialogContent,null,r.createElement(g.DialogContentText,null,"Are you sure you want to delete this connection?")),r.createElement(g.DialogActions,null,r.createElement(g.Button,{onClick:function(){return a()},color:"primary"},"Cancel"),r.createElement(g.Button,{variant:"contained",color:"primary",onClick:function(){var e;o&&(null===(e=n.deleteConnection)||void 0===e||e.call(n,o)),a()}},"OK")))}var Xt={__proto__:null,default:f.observer(Qt)},$t=g.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},connectionContainer:{margin:e.spacing(4),width:500}}}));function Zt(e){var t=e.session,n=e.handleClose,a=e.breakConnection,o=$t(),i=t.adminMode,l=t.connections,u=t.sessionConnections;return r.createElement(g.Dialog,{open:!0,onClose:n,maxWidth:"lg"},r.createElement(g.DialogTitle,null,"Delete connections",r.createElement(g.IconButton,{className:o.closeButton,onClick:function(){return n()}},r.createElement(E,null))),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,"Click the X icon to delete the connection from your config completely"),r.createElement("div",{className:o.connectionContainer},l.map((function(e){var t=c.readConfObject(e,"name");return r.createElement("div",{key:"conn-".concat(t)},r.createElement(g.Typography,null,i||null!=u&&u.includes(e)?r.createElement(g.IconButton,{onClick:function(){return a(e,!0)}},r.createElement(E,{color:"error"})):r.createElement(g.Tooltip,{title:"Unable to delete connection in config file as non-admin user"},r.createElement(g.IconButton,null,r.createElement(E,{color:"disabled"}))),t))})),l.length?null:r.createElement(g.Typography,null,"No connections found"))),r.createElement(g.DialogActions,null,r.createElement(g.Button,{onClick:function(){return n()},variant:"contained",color:"primary"},"Close")))}var en={__proto__:null,default:f.observer(Zt)},tn=g.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},connectionContainer:{width:500,margin:e.spacing(4)}}}));function nn(e){var t=e.session,n=e.handleClose,a=e.assemblyName,o=e.breakConnection,i=tn(),l=t.connectionInstances,u=t.connections.filter((function(e){var t=c.readConfObject(e,"assemblyNames");return 0===t.length||t.includes(a)}));return r.createElement(g.Dialog,{open:!0,onClose:n,maxWidth:"lg"},r.createElement(g.DialogTitle,null,"Turn on/off connections",r.createElement(g.IconButton,{className:i.closeButton,onClick:function(){return n()}},r.createElement(E,null))),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,"Use the checkbox to turn on/off connections"),r.createElement("div",{className:i.connectionContainer},u.map((function(e){var n=c.readConfObject(e,"name");return r.createElement("div",{key:e.connectionId},r.createElement(g.FormControlLabel,{control:r.createElement(g.Checkbox,{checked:!(null==l||!l.find((function(e){return n===e.name}))),onChange:function(){var n;null!=l&&l.find((function(t){return t.name===c.readConfObject(e,"name")}))?o(e):null===(n=t.makeConnection)||void 0===n||n.call(t,e)},color:"primary"}),label:n}))})),u.length?null:r.createElement(g.Typography,null,"No connections found for ",a))),r.createElement(g.DialogActions,null,r.createElement(g.Button,{onClick:function(){return n()},variant:"contained",color:"primary"},"Close")))}var rn={__proto__:null,default:f.observer(nn)};exports.AssemblyManager=et,exports.SetDefaultSession=Ze,exports.default=tt;
2
2
  //# sourceMappingURL=plugin-data-management.cjs.production.min.js.map