@jbrowse/plugin-data-management 1.5.8 → 1.6.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.
- package/dist/plugin-data-management.cjs.development.js +8 -8
- package/dist/plugin-data-management.cjs.development.js.map +1 -1
- package/dist/plugin-data-management.cjs.production.min.js +1 -1
- package/dist/plugin-data-management.cjs.production.min.js.map +1 -1
- package/dist/plugin-data-management.esm.js +8 -8
- package/dist/plugin-data-management.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/AddTrackWidget/components/ConfirmTrack.tsx +3 -1
|
@@ -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"),h=e(require("@material-ui/icons/ExpandMore")),y=e(require("@material-ui/icons/Clear")),v=e(require("@material-ui/icons/InfoOutlined")),b=e(require("@material-ui/icons/Close")),E=e(require("@material-ui/icons/Lock")),k=require("@jbrowse/core/util/types"),C=e(require("@material-ui/icons/Person")),T=e(require("@material-ui/icons/Add")),w=e(require("@material-ui/icons/Check")),x=e(require("clsx")),S=e(require("@material-ui/core/IconButton")),L=require("@material-ui/core/styles"),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=g.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(E,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(b,null))),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,"Please confirm that you want to remove ",n,". Note: if any resources in this session still use this plugin, it may cause your session to crash"),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];y?h.removePlugin(n):k.isSessionWithSessionPlugins(d)&&d.removeSessionPlugin(n)}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(b,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(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?w:T,null),onClick:function(){o?h.addPlugin({name:t.name,url:t.url}):k.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],E=ue(n.useState(""),2),k=E[0],C=E[1],T=ue(n.useState(!1),2),w=T[0],L=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(S,{size:"medium",className:i.closeButton,onClick:function(){return a()}},r.createElement(b,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(){L(!w)}},r.createElement(S,{className:x(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");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&ie(e,t)}(c,i);var t,r,l=ce(c);function c(){var e;return re(this,c),(e=l.apply(this,arguments)).name="DataManagementPlugin",e.exports={AssemblyManager:et,SetDefaultSession:Ze},e}return t=c,(r=[{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)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(),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],w=ue(n.useState(ct),2),x=w[0],S=w[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(T,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=L.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(b,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(T,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(T,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(S,{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=L.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(b,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(b,{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(b,{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(b,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;
|
|
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=e(require("@material-ui/icons/Close")),E=e(require("@material-ui/icons/Lock")),k=require("@jbrowse/core/util/types"),C=e(require("@material-ui/icons/Person")),T=e(require("@material-ui/icons/Add")),w=e(require("@material-ui/icons/Check")),x=e(require("clsx")),S=e(require("@material-ui/core/IconButton")),L=require("@material-ui/core/styles"),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 ye=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,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 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(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,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 he(){return(he=ne(ye.mark((function e(n){var r;return ye.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(ye.mark((function e(n){var r;return ye.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(ye.mark((function e(n){var r;return ye.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 he.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=g.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(E,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(b,null))),r.createElement(g.DialogContent,null,r.createElement(g.Typography,null,"Please confirm that you want to remove ",n,". Note: if any resources in this session still use this plugin, it may cause your session to crash"),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),y=f.jbrowse,h=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];h?y.removePlugin(n):k.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(b,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],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?w:T,null),onClick:function(){o?y.addPlugin({name:t.name,url:t.url}):k.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),h=f[0],v=f[1],E=ue(n.useState(""),2),k=E[0],C=E[1],T=ue(n.useState(!1),2),w=T[0],L=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||h||k);function I(){if(D){var e={};c&&m&&(e.name=c,e.umdUrl=m),h&&(e.esmUrl=h),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(S,{size:"medium",className:i.closeButton,onClick:function(){return a()}},r.createElement(b,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(){L(!w)}},r.createElement(S,{className:x(i.expand,ae({},i.expandOpen,w)),"aria-expanded":w,"aria-label":"show more"},r.createElement(y,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:h,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(ye.mark((function e(){var n,r,a;return ye.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(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(We,{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!!(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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ie(e,t)}(c,i);var t,r,l=ce(c);function c(){var e;return re(this,c),(e=l.apply(this,arguments)).name="DataManagementPlugin",e.exports={AssemblyManager:et,SetDefaultSession:Ze},e}return t=c,(r=[{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)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(),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],y=p[1],h=ue(n.useState(ct),2),v=h[0],b=h[1],E=ue(n.useState(ct),2),k=E[0],C=E[1],w=ue(n.useState(ct),2),x=w[0],S=w[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:y,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(T,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=L.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],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(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(b,null))),r.createElement(g.DialogContent,null,r.createElement("div",{className:i.dialogContent},h?r.createElement(at,{rootModel:a,setIsAssemblyBeingEdited:m,setAssemblyBeingEdited:y}):null,d?r.createElement(st,{assembly:f}):null,c?r.createElement(ut,{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(T,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}))})),yt=n.lazy((function(){return Promise.resolve().then((function(){return rn}))})),ht=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,y=t.onMoreInfo,h=t.drawerPosition,v=ht(),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(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,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(ye.mark((function e(){var t,n,r,a;return ye.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,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,bt(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(R.VariableSizeTree,{ref:s,treeWalker:h,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=ht(),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(T,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=ht(),s=u.getSession(t),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),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(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(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(yt,{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){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,y=t.trackType,h=ue(n.useState(),2),v=h[0],b=h[1];function E(){return k.apply(this,arguments)}function k(){return(k=ne(ye.mark((function e(){var n,r;return ye.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: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&&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(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(S,{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=L.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),y=g[0],h=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;y===Gt.length-1?(e=b.addConnectionConf(c),b.makeConnection(e),b.hideWidget(t)):h(y+1)}function T(){h(y-1)}return r.createElement("div",{className:v.root},r.createElement(V,{className:v.stepper,activeStep:y,orientation:"vertical"},Gt.map((function(e){return r.createElement(z,{key:e},r.createElement(J,null,e),r.createElement(G,null,function(){switch(y){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===y,onClick:T,className:v.button},"Back"),r.createElement(H,{disabled:!(0===y&&o.name||1===y&&c&&p),variant:"contained",color:"primary",onClick:C,className:v.button,"data-testid":"addConnectionNext"},y===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(b,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(b,{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(b,{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(b,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
|