@jbrowse/plugin-data-management 1.5.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.
@@ -1,2 +1,2 @@
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"),y=e(require("@material-ui/icons/ExpandMore")),h=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")),T=require("@jbrowse/core/util/types"),C=e(require("@material-ui/icons/Person")),w=e(require("@material-ui/icons/Add")),x=e(require("@material-ui/icons/Check")),S=e(require("@material-ui/core/IconButton")),L=e(require("@material-ui/icons/ArrowBackIos")),N=e(require("@material-ui/icons/Create")),A=e(require("@material-ui/icons/Delete")),D=e(require("@jbrowse/core/ui/FileSelector")),I=require("@jbrowse/plugin-config"),B=e(require("@material-ui/icons/ArrowDropDown")),P=e(require("@material-ui/icons/ArrowRight")),M=e(require("@material-ui/icons/Menu")),j=e(require("@material-ui/icons/MoreHoriz")),O=e(require("@material-ui/icons/PowerOutlined")),F=e(require("react-virtualized-auto-sizer")),_=e(require("@jbrowse/core/ui/Menu")),U=require("react-vtree"),R=require("@material-ui/lab"),W=require("@jbrowse/core/ui"),q=e(require("@material-ui/core/Button")),H=e(require("@material-ui/core/Step")),z=e(require("@material-ui/core/StepContent")),G=e(require("@material-ui/core/StepLabel")),V=e(require("@material-ui/core/Stepper")),J=e(require("@material-ui/core/Typography")),Y=e(require("@material-ui/core/MenuItem")),K=e(require("@material-ui/core/TextField")),Q=e(require("@material-ui/icons/OpenInNew"));function X(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 $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Z(e){return(Z="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 ee(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 te(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){ee(o,r,a,i,l,"next",e)}function l(e){ee(o,r,a,i,l,"throw",e)}i(void 0)}))}}function ne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e){return(ae=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function oe(e,t){return(oe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ie(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 le(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=ae(e);if(t){var a=ae(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return ie(this,n)}}function ce(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 ue(e){return function(e){if(Array.isArray(e))return de(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 de(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)?de(e,t):void 0}}function de(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function me(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=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 pe=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 fe(e,t){return e(t={exports:{}},t.exports),t.exports}var ge=fe((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 C(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,y=g&&g(g(w([])));y&&y!==t&&n.call(y,a)&&(f=y);var h=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 T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(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(h,"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(h),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(h),l(h,i,"Generator"),l(h,a,(function(){return this})),l(h,"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,C.prototype={constructor:C,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(T),!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),T(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;T(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=te(ge.mark((function e(n){var r;return ge.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 he(e){return ve.apply(this,arguments)}function ve(){return(ve=te(ge.mark((function e(n){var r;return ge.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 be(e){return Ee.apply(this,arguments)}function Ee(){return(Ee=te(ge.mark((function e(n){var r;return ge.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 ke(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=ce(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 Ce(e){return s.types.compose("UCSCTrackHubConnection",l.BaseConnectionModelFactory(e),s.types.model({configuration:c.ConfigurationReference(pe),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,he(t)])})).then((function(a){var o,i=ce(a,2),l=i[0],u=[],s=me(i[1]);try{var d=function(){var a=ce(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,be(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=me(t);try{for(r.s();!(n=r.n()).done;){var a=ce(n.value,4),o=ke(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 we(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{return new URL(e),!0}catch(t){return e.startsWith("/")}}function xe(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&&!we(n)},get isRelativeIndexUrl(){var t,n=null===(t=e.indexTrackData)||void 0===t?void 0:t.uri;return!!n&&!we(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 Se=c.ConfigurationSchema("AddTrackWidget",{}),Le=s.types.model("AddConnectionModel",{id:p.ElementId,type:s.types.literal("AddConnectionWidget")}),Ne=c.ConfigurationSchema("AddConnectionWidget",{}),Ae=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 De(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 Ie(e,t,n){var r={children:[]},a=e.filterText,o=e.view;return t.filter((function(e){return t=a,r=De(n=e),o=c.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=ue(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:De(e),conf:e,checked:!!o.tracks.find((function(t){return t.configuration===e})),children:[]})})),r.children}var Be=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=me(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"===Z(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(ue(a.filter((function(e){var t=c.readConfObject(e,"assemblyNames");return Ae(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 Ae(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 Ae(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 Ae(r,a)})):[]},hierarchy:function(e){var n=this,r=Ie(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(ue(o))}},connectionHierarchy:function(e,n){return Ie(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}}}))},Pe=c.ConfigurationSchema("HierarchicalTrackSelectorWidget",{}),Me=b.makeStyles((function(){return{closeDialog:{position:"absolute",right:0,top:0},dialogContainer:{margin:15},lockedPluginTooltip:{marginRight:"0.5rem"}}}));function je(){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 Oe(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 Fe(e){var t=e.plugin,a=e.model,o=e.pluginManager,i=ce(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),y=f.jbrowse,h=f.adminMode;return r.createElement(r.Fragment,null,l?r.createElement(Oe,{plugin:l,onClose:function(e){if(e){var n=o.pluginMetadata[t.name].url;h?y.removePlugin(n):T.isSessionWithSessionPlugins(d)&&d.removeSessionPlugin(n)}c(void 0)}}):null,r.createElement(g.ListItem,{key:t.name},h||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(je,null),r.createElement(g.Typography,null,t.name)))}var _e=f.observer(Fe);function Ue(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 Re=f.observer(Ue),We=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 qe(e){var t=e.plugin,a=e.model,o=e.adminMode,i=We(),l=u.getSession(a),c=s.getEnv(a),d=Boolean(c.pluginManager.runtimePluginDefinitions.find((function(e){return e.url===t.url}))),m=ce(n.useState(!1),2),p=m[1],f=d||m[0],y=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(C,{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?y.addPlugin({name:t.name,url:t.url}):T.isSessionWithSessionPlugins(l)&&l.addSessionPlugin(t),p(!0)}},d?"Installed":"Install")))}var He=f.observer(qe),ze=g.makeStyles((function(){return{closeDialog:{position:"absolute",right:0,top:0},dialogContainer:{margin:15,display:"flex",flexDirection:"column"}}}));function Ge(e){var t=e.open,a=e.onClose,o=e.model,i=ze(),l=ce(n.useState(""),2),c=l[0],u=l[1],d=ce(n.useState(""),2),m=d[0],p=d[1],f=s.getRoot(o).jbrowse;return r.createElement(g.Dialog,{open:t,onClose:function(){return a()}},r.createElement(g.DialogTitle,null,"Add custom plugin",r.createElement(S,{className:i.closeDialog,onClick:function(){return a()}},r.createElement(E,null))),r.createElement(g.DialogContent,null,r.createElement("div",{className:i.dialogContainer},r.createElement(g.Typography,null,"Specify the name and URL path of your plugin source"),r.createElement(g.TextField,{id:"name-input",name:"name",label:"Plugin name",variant:"outlined",value:c,onChange:function(e){return u(e.target.value)}}),r.createElement(g.TextField,{id:"url-input",name:"url",label:"Plugin URL",variant:"outlined",value:m,onChange:function(e){return p(e.target.value)}}))),r.createElement(g.DialogActions,null,r.createElement(g.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),r.createElement(g.Button,{variant:"contained",color:"primary",onClick:function(){f.addPlugin({name:c,url:m}),a()}},"Submit")))}var Ve=f.observer(Ge),Je=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 Ye(e){var t=e.model,a=Je(),o=ce(n.useState(),2),i=o[0],l=o[1],c=ce(n.useState(),2),d=c[0],m=c[1],p=ce(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=!1;return te(ge.mark((function t(){var n,r,a;return ge.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=9;break}return t.next=7,n.text();case 7:throw r=t.sent,new Error("Failed to fetch plugin data: ".concat(n.status," ").concat(n.statusText," ").concat(r));case 9:return t.next=11,n.json();case 11:a=t.sent,e||l(a.plugins),t.next=19;break;case 15:t.prev=15,t.t0=t.catch(0),console.error(t.t0),m(t.t0);case 19:case"end":return t.stop()}}),t,null,[[0,15]])})))(),function(){e=!0}}),[]),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(h,null)))}}),r.createElement(g.Accordion,{defaultExpanded:!0},r.createElement(g.AccordionSummary,{expandIcon:r.createElement(y,{className:a.expandIcon})},r.createElement(g.Typography,{variant:"h5"},"Installed plugins")),r.createElement("div",{style:{margin:"1em"}},r.createElement(Re,{pluginManager:k,model:t}))),r.createElement(g.Accordion,{defaultExpanded:!0},r.createElement(g.AccordionSummary,{expandIcon:r.createElement(y,{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 e.name.toLowerCase().includes(t.filterText.toLowerCase())})).map((function(e){return r.createElement(He,{key:e.name,plugin:e,model:t,adminMode:!!E})})):r.createElement(g.Typography,null,"Loading...")))}var Ke={__proto__:null,default:f.observer(Ye)};function Qe(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 Xe=c.ConfigurationSchema("PluginStoreWidget",{}),$e=n.lazy((function(){return Promise.resolve().then((function(){return tt}))})),Ze=n.lazy((function(){return Promise.resolve().then((function(){return dt}))})),et=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&&oe(e,t)}(l,i);var t,r=le(l);function l(){var e;return ne(this,l),(e=r.apply(this,arguments)).name="DataManagementPlugin",e.exports={AssemblyManager:Ze,SetDefaultSession:$e},e}return(t=[{key:"install",value:function(e){e.addConnectionType((function(){return new a({name:"UCSCTrackHubConnection",configSchema:pe,stateModel:Ce(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:Pe,stateModel:Be(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return xt}))}))})})),e.addWidgetType((function(){return new o({name:"AddTrackWidget",heading:"Add a track",configSchema:Se,stateModel:xe(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Rt}))}))})})),e.addWidgetType((function(){return new o({name:"AddConnectionWidget",heading:"Add a connection",configSchema:Ne,stateModel:Le,ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Vt}))}))})})),e.addWidgetType((function(){return new o({name:"PluginStoreWidget",heading:"Plugin store",configSchema:Xe,stateModel:Qe(e),ReactComponent:n.lazy((function(){return Promise.resolve().then((function(){return Ke}))}))})}))}},{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}(),tt={__proto__:null,default:f.observer((function(e){var t,n=e.rootModel,a=e.onClose;if(!n)return null;if("object"!==Z(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")))}))},nt=g.makeStyles((function(){return{table:{minWidth:500,minHeight:150},buttonCell:{padding:3},button:{display:"inline-block",padding:3,minHeight:0,minWidth:0}}})),rt=f.observer((function(e){var t=e.rootModel,n=e.setIsAssemblyBeingEdited,a=e.setAssemblyBeingEdited,o=nt(),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(N,{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(A,{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)))})),at=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"}}})),ot=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)})))})),it=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(D,{name:"fastaLocation",location:e.fastaLocation,setLocation:function(e){return n(e)}})),r.createElement(g.Grid,{item:!0},r.createElement(D,{name:"faiLocation",location:a,setLocation:function(e){return o(e)}})),"BgzipFastaAdapter"===t?r.createElement(g.Grid,{item:!0},r.createElement(D,{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(D,{name:"twoBitLocation",location:c,setLocation:function(e){return u(e)}})),r.createElement(g.Grid,{item:!0},r.createElement(D,{name:"chromSizesLocation (optional, can be added to speed up loading 2bit files with many contigs)",location:s,setLocation:function(e){return d(e)}}))):null})),lt={uri:""},ct=f.observer((function(e){var t=e.rootModel,a=e.setFormOpen,o=at(),i=["IndexedFastaAdapter","BgzipFastaAdapter","TwoBitAdapter"],l=ce(n.useState(""),2),c=l[0],u=l[1],s=ce(n.useState(""),2),d=s[0],m=s[1],p=ce(n.useState(i[0]),2),f=p[0],y=p[1],h=ce(n.useState(lt),2),v=h[0],b=h[1],E=ce(n.useState(lt),2),k=E[0],T=E[1],C=ce(n.useState(lt),2),x=C[0],S=C[1],L=ce(n.useState(lt),2),N=L[0],A=L[1],D=ce(n.useState(lt),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(ot,{adapterSelection:f,setAdapterSelection:y,adapterTypes:i}),r.createElement("div",{className:o.paperContent},r.createElement(it,{adapterSelection:f,fastaLocation:v,setFastaLocation:b,faiLocation:k,setFaiLocation:T,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"))))})),ut=f.observer((function(e){return r.createElement(I.ConfigurationEditor,{model:{target:e.assembly}})})),st=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]}}})),dt={__proto__:null,default:f.observer((function(e){var t,a=e.rootModel,o=e.onClose,i=st(),l=ce(n.useState(!1),2),c=l[0],u=l[1],s=ce(n.useState(!1),2),d=s[0],m=s[1],p=ce(n.useState(),2),f=p[0],y=p[1],h=!c&&!d;return r.createElement(g.Dialog,{open:!0,onClose:function(){return o(!1)}},r.createElement(g.DialogTitle,{className:i.titleBox},h?"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(L,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(L,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},h?r.createElement(rt,{rootModel:a,setIsAssemblyBeingEdited:m,setAssemblyBeingEdited:y}):null,d?r.createElement(ut,{assembly:f}):null,c?r.createElement(ct,{rootModel:a,setFormOpen:u}):null)),r.createElement(g.DialogActions,null,h?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))}))},mt=n.lazy((function(){return Promise.resolve().then((function(){return Yt}))})),pt=n.lazy((function(){return Promise.resolve().then((function(){return Qt}))})),ft=n.lazy((function(){return Promise.resolve().then((function(){return Zt}))})),gt=n.lazy((function(){return Promise.resolve().then((function(){return nn}))})),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"}}})),ht=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,y=t.onMoreInfo,h=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"===h?"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 y({target:e.currentTarget,id:s,conf:f})},color:"secondary","data-testid":"htsTrackEntryMenu-".concat(s)},r.createElement(j,null))):r.createElement("div",{className:v.accordionText},r.createElement(g.Typography,null,r.createElement(n?B:P,null),d)))))},vt=function(e,t,n){var r=!!e.conf;return{data:$($({defaultHeight:r?22:40,isLeaf:r,isOpenByDefault:!0,nestingLevel:t},e),n),nestingLevel:t,node:e}},bt=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=ce(n.useState(),2),m=d[0],p=d[1],f=u.getSession(i),g=f.drawerPosition,y=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]),h=n.useCallback(ge.mark((function e(){var t,n,r,a;return ge.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,vt(o.children[t],0,y);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,vt(a,n.nestingLevel+1,y);case 16:r++,e.next=12;break;case 19:e.next=7;break;case 21:case"end":return e.stop()}}),e)})),[o,y]),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(U.VariableSizeTree,{ref:s,treeWalker:h,height:a},ht),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)}}))})),Et=function(e){var t=e.tree,n=e.model,a=e.offset;return"undefined"==typeof jest?r.createElement(F,{disableWidth:!0},(function(e){return r.createElement(bt,{height:e.height-a,model:n,tree:t})})):r.createElement(bt,{height:9e3,model:n,tree:t})},kt=function(e){var t=e.overrideDimensions,n=e.children;return t?r.createElement("div",{style:$({},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=ce(n.useState(null),2),s=c[0],d=c[1];function m(){d(null)}return r.createElement(kt,{overrideDimensions:o},r.createElement(wt,{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")))})),Ct=f.observer((function(e){var t=e.model,a=e.setHeaderHeight,o=e.setAssemblyIdx,i=e.assemblyIdx,l=yt(),s=u.getSession(t),d=ce(n.useState(),2),m=d[0],p=d[1],f=ce(n.useState(),2),y=f[0],v=f[1],b=ce(n.useState(),2),E=b[0],k=b[1],T=ce(n.useState(),2),C=T[0],w=T[1],x=ce(n.useState(!1),2),S=x[0],L=x[1],N=ce(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=ce(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)}}],F=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(F);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(O,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(h,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:y,open:Boolean(y),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(mt,{modalInfo:E,setModalInfo:k,session:s}):C?r.createElement(pt,{handleClose:function(){w(void 0)},deleteDialogDetails:C,session:s}):null,S?r.createElement(ft,{handleClose:function(){return L(!1)},breakConnection:P,session:s}):null,A?r.createElement(gt,{handleClose:function(){return D(!1)},session:s,breakConnection:P,assemblyName:B}):null))})),wt=f.observer((function(e){var t=e.model,a=e.toolbarHeight,o=void 0===a?0:a,i=ce(n.useState(0),2),l=i[0],c=i[1],u=ce(n.useState(0),2),s=u[0],d=t.assemblyNames[l];return d?r.createElement(r.Fragment,null,r.createElement(Ct,{model:t,setHeaderHeight:u[1],setAssemblyIdx:c,assemblyIdx:l}),r.createElement(Et,{tree:t.hierarchy(d),model:t,offset:o+s})):null})),xt={__proto__:null,default:Tt},St=g.makeStyles((function(e){return{spacing:{marginBottom:e.spacing(3)}}}));function Lt(e){var t,n=e.trackAdapter,a=e.trackType,o=St();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 Nt=f.observer((function(e){var t,n,a,o=e.model,i=St(),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 At(e){var t=e.model,n=St();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(Nt,{model:t}))}var Dt=f.observer((function(e){var t=e.model,n=St(),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)})))})),It=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 Bt(e){var t=e.model,n=St(),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(At,{model:t}):(""===c&&o&&t.setAdapterHint(o.type),null!=o&&o.type?r.createElement("div",null,o?r.createElement(Lt,{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(Nt,{model:t}),r.createElement(Dt,{model:t}),r.createElement(It,{model:t})):r.createElement(g.Typography,null,"Could not recognize this data type."))}var Pt=f.observer(Bt),Mt=g.makeStyles((function(e){return{paper:{display:"flex",flexDirection:"column",padding:e.spacing(1)},spacer:{height:e.spacing(8)}}}));function jt(e){var t=e.model,n=Mt(),a=s.getRoot(t);return r.createElement(g.Paper,{className:n.paper},r.createElement(W.FileSelector,{name:"Main file",description:"",location:t.trackData,setLocation:t.setTrackData,setName:t.setTrackName,rootModel:a}),r.createElement("div",{className:n.spacer}),r.createElement(W.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 Ot=f.observer(jt),Ft=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 Ut(e){var t=e.model,a=ce(n.useState(0),2),o=a[0],i=a[1],l=Ft(),s=u.getSession(t),d=t.assembly,m=t.trackAdapter,p=t.trackData,f=t.trackName,y=t.trackType,h=ce(n.useState(),2),v=h[0],b=h[1];function E(){return k.apply(this,arguments)}function k(){return(k=te(ge.mark((function e(){var n,r;return ge.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:y,name:f,assemblyNames:[d],adapter:$($({},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 T(){b(void 0),i(o-1)}function C(){switch(o){case 0:return!p;case 1:return!(f&&y&&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(Ot,{model:t});case 1:return r.createElement(Pt,{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:T,className:l.button},"Back"),r.createElement(g.Button,{disabled:C(),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(R.Alert,{severity:"error"},v)):null))}))))}var Rt={__proto__:null,default:f.observer(Ut)},Wt=f.observer((function(e){var t=e.model,a=e.setModelReady,o=e.connectionType.configEditorComponent||I.ConfigurationEditor;return r.createElement(n.Suspense,{fallback:r.createElement("div",null,"Loading...")},r.createElement(o,{model:{target:t},setModelReady:a}))}));function qt(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(K,{value:a.name,label:"connectionType",helperText:a.description?r.createElement(r.Fragment,null,a.description,a.url?r.createElement(S,{href:a.url,rel:"noopener noreferrer",target:"_blank",color:"secondary"},r.createElement(Q,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(Y,{key:e.name,value:e.name},e.displayName||e.name)})))):null}var Ht=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)}}})),zt=["Select a Connection Type","Configure Connection"];function Gt(e){var t=e.model,a=ce(n.useState({}),2),o=a[0],i=a[1],l=ce(n.useState({}),2),c=l[0],d=l[1],m=ce(n.useState(!0),2),p=m[0],f=m[1],g=ce(n.useState(0),2),y=g[0],h=g[1],v=Ht(),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 T(){var e;y===zt.length-1?(e=b.addConnectionConf(c),b.makeConnection(e),b.hideWidget(t)):h(y+1)}function C(){h(y-1)}return r.createElement("div",{className:v.root},r.createElement(V,{className:v.stepper,activeStep:y,orientation:"vertical"},zt.map((function(e){return r.createElement(H,{key:e},r.createElement(G,null,e),r.createElement(z,null,function(){switch(y){case 0:return r.createElement(qt,{connectionTypeChoices:E.getElementTypesInGroup("connection"),connectionType:o,setConnectionType:k});case 1:return r.createElement(Wt,{connectionType:o,model:c,setModelReady:f});default:return r.createElement(J,null,"Unknown step")}}(),r.createElement("div",{className:v.actionsContainer},r.createElement(q,{disabled:0===y,onClick:C,className:v.button},"Back"),r.createElement(q,{disabled:!(0===y&&o.name||1===y&&c&&p),variant:"contained",color:"primary",onClick:T,className:v.button,"data-testid":"addConnectionNext"},y===zt.length-1?"Connect":"Next"))))}))))}Gt.propTypes={model:f.PropTypes.observableObject.isRequired};var Vt={__proto__:null,default:f.observer(Gt)};function Jt(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=ce(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 Yt={__proto__:null,default:f.observer(Jt)};function Kt(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 Qt={__proto__:null,default:f.observer(Kt)},Xt=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 $t(e){var t=e.session,n=e.handleClose,a=e.breakConnection,o=Xt(),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 Zt={__proto__:null,default:f.observer($t)},en=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 tn(e){var t=e.session,n=e.handleClose,a=e.assemblyName,o=e.breakConnection,i=en(),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 nn={__proto__:null,default:f.observer(tn)};exports.AssemblyManager=Ze,exports.SetDefaultSession=$e,exports.default=et;
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