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